不确定托管语言是否可以实现这一点,但是否有可能在存在超线程的情况下使应用程序更好地运行?
代码中是否有特定的内容? ,也许某些功能比HT环境中的其他功能更好?
我知道要从多线程中受益,所需要的就是生成新线程以执行繁重的cpu任务,但我不确定HT需要什么?
答案 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。