如何从.Net中的超线程中获得最大收益

时间:2013-03-09 19:04:03

标签: c# .net multithreading hyperthreading

不确定托管语言是否可以实现这一点,但是否有可能在存在超线程的情况下使应用程序更好地运行?

代码中是否有特定的内容? ,也许某些功能比HT环境中的其他功能更好?

我知道要从多线程中受益,所需要的就是生成新线程以执行繁重的cpu任务,但我不确定HT需要什么?

1 个答案:

答案 0 :(得分:4)

取决于您拥有的实际硬件。阅读Be aware: To Hyper or not to Hyper以获得更多的部门分析。 Slava在链接中的观点是,在HT中,虚拟核心共享缓存,虚拟核心工作负载可能会破坏“主”核心的缓存,即使它与主核心相比最多可以完成约20%的工作量,因为它驱逐了主核的热缓存,它导致主核停止并且整体导致更差性能比没有HT。

但自文章发布以来,很多事情都发生了变化,HT帖子Nehalem明显更好。

  

我知道要从多线程中受益,所需要的只是   产生新线程以执行繁重的cpu任务

这是一个很天真的观点。您必须阅读Rick Vicik articles on high performance windows programs(它们也适用于托管应用),您必须完全理解CPU Caches and Why You Care