本帖最后由 lamhonkit 于 2013-5-28 14:36 编辑
很多人对超线程这项技术有很多想法,但都比较极端,一方叫好一方叫坏.当然事物不可能十全十美,有优点也有缺点,这就要看优点多还是缺点多,才会定义这件事物是好是坏,就像清洁能源和非清洁能源.
引用技术原理介绍:
“超线程”(Hyperthreading Technology)技术就是通过采用特殊的硬件指令,可以把两个逻辑内核模拟成两个物理超线程芯片,在单处理器中实现线程级的并行计算,同时在相应的软硬件的支持下大幅度的提高运行效能,从而实现在单处理器上模拟双处理器的效能。其实,从实质上说,超线程是一种可以将CPU内部暂时闲置处理资源充分“调动”起来的技术。
从技术原理上看,就是每个单核都可以当双核使用,这是伪双核,因为资源是共享的.但好处是可以充分利用空闲的资源,因为处理器的速度很快,单线程能处理成千上万条指令,但同一时刻却只能执行一条指令,这就是为什么资源利用不充足.使用了超线程后,在同一时刻就可以同时处理两条指令,这就是超线程的优点,变相的提升CPU的性能.
现在说说很多游戏迷都喜欢拿I5来和E3 1230和I7来对比,I5是四核四线程,E3和I7是四核八线程,对于游戏迷当然是看游戏的帧数,所以帧数是他们衡量U的标准.
在I5和E3的对比中,游戏玩家发现I5玩游戏的帧数会比E3的高,于是乎有了想法,是否是超线程导致性能降低呢?有人就拿E3关闭HT来对比,发现确实关闭后帧数有所增加.有人就开始说超线程是个累赘,性能不好之类的说法.
现在就对为什么开了HT后玩游戏会帧数下降来说明.
1.对于游戏之类对单核性能依赖较高.
2.游戏对多线程优化不够.
3.HT开启后是会占用一点资源.
对第三点来做说明
如果拿单核资源来说是100%,使用超线程后,就有两个逻辑核心,在单线程中,0线程在使用,1线程空闲中,0线程满负荷,但由于1线程需要待命,也需要占用一定资源,所以用0线程跑出来的分数会比不使用HT的单核分数要低.简单来比喻,即使你不使用硬盘,但硬盘也要空转也要耗能,这就像1线程.
在说说HT的效能
1.U不是满负荷的时候,对接上多线程的软件,可以达到"1"+"1"接近与2的性能,因为HT双线程是共用资源的,在不是满负荷的情况下,资源空闲可以自由发挥,所以说逻辑单核接近与单核的性能.
2.U在满负荷的时候,对接上多线程的软件,会有"1"+"1">1的性能,因为双线程能够同一时刻能够同时处理两段指令,即使是资源有限,但是同时可以处理两段指令这就足以让"1"+"1">1条件成立.
使用HT就像木桶效应一样,是根据木桶最短的木板来确定木桶的容量.所以缺少条件就无法使用到它的效果.
上面所说的比较针对单一大型软件,下面给个图,也就可以说明平日中HT技术也很有用.
HT不单方面针对单一软件,现在的电脑所装的软件有很多,不管在前台还是后台,它们都是在运行着,都体验着HT.HT减少了单线程的资源浪费,换来了高响应的速度,虽然性能在单线程体验中会有下降,但是日后的软件都会已多线程来优化.有利有弊这才是现实,完美的东西只有在梦里.没有完美,只有更好.
还有补充一下,为什么开了HT后CPU占用率会比较低,在开启HT后有更多线程来处理指令,缩短了处理的时间,把积压的指令处理了,看上去就像CPU用不上性能一样,这也是为什么有人唾弃HT的原因之一.
2013-5-28
突然找到一个非常有说服力的.
而且现在单线程软件的数量锐减,小于4线程的进程只有13个,大于等于四线程的进程有84个.即使你用的是I7,小于8线程的进程也才24个,大于等于8线程的也有73个.所以不要认为HT没用.
|