为什么使用超线程会导致性能下降


10

我在不同的地方,如阅读,超线程导致性能下降。

我无法弄清楚超线程导致退化的原因或原因。

为什么这样,即使在超线程允许OS使用免费资源的情况下,降级也会发生。

尽管基准测试确实表明超线程是罪魁祸首,但是有人可以向我解释其原因。

谢谢

Answers:


8

答案似乎和往常一样与缓存有关。由于超线程使用相同的L1和L2缓存,因此一个超线程会破坏另一个缓存。在最坏的情况下,线程会轮流破坏对方的缓存,并且性能会降低,因为重新填充缓存后只会再次被破坏。

当然,这可能是非常特定于工作负载的,这可以解释为什么问题通常在服务器上看到。

还值得注意的是,答案部分取决于“性能”的含义。例如,在实时系统中,您的性能指标是可预测性而不是吞吐量,而超线程会由于引入不可预测的停顿而对其产生负面影响。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.