那么在多核心处理器上,Windows7的性能是否真的会高于Vista呢?我们在一台戴尔PrecisionT3500工作站上进行测试,配置有NehalemXeonW35402.93GHz四核心处理器、4GB内存、NVIDIAQuadroFX4800显卡等,并使用三块完全相同的硬盘,分别安装WindowsXP SP3、WindowsVistaUltimateSP2、Windows 7 Ultimate,均是32位版本。
测试项目
(结果越大越好) |
XP SP3 |
Vista Ultimate SP2 |
7 Ultimate |
SPEC Viewperf 10(关闭SMT) |
95.84 |
142.95 |
139.35 |
SPEC Viewperf 10(开启SMT) |
93.45 |
145.30 |
138.80 |
CineBench R10(关闭SMT) |
3.43 |
3.40 |
3.48 |
CineBench R10(开启SMT) |
3.98 |
4.07 |
4.09 |
在SPECViewperf10测试中,Windows7的得分相比于XP高出了45-49%之多,看起来绝对值得升级,不过注意相比于Vista却有轻微下滑,好在差距不大。CineBenchR10结果略有不同,三套系统的成绩其实相差无几,就绝对值而言Windows7倒是***的。
另外在开启超线程技术后,三套系统的CineBenchR10成绩都有明显提升,但SPECViewperf10里只有Vista获得了稍好的性能,Windows7和XP都有小幅度倒退。
Windows7的多线程性能看起来似乎并不比Vista强,但事实上并没有这么简单。一个线程如果要读取某个可能被其他线程使用的项目,必需使用程序锁保证任何时候只能有一个线程对其进行修改。在此前的操作系统中,线程需要访问程序锁的时候必需向内核指令分配程序锁发送请求,但这种处理机制是全局性的,所以一旦系统内处理器数量增加,就会出现瓶颈。其实这正是Windows系统(包括服务器版本)此前最多只能运行在64个处理器核心上的根本原因。
Windows7则引入了一种新的机制,绕过全局程序锁概念,支持处理器核心数量因此增加到了256个,而且不会同时伴随性能损失,只不过在系统处理器核心较少的时候旧有机制并不会超载,所以Windows7在桌面和小型服务器工作站上很难明显提高多线程性能。
再来看看另外一个话题:功耗。
Windows7可以将多个线程处理到同一条执行管线里,因此处理器能够关闭空闲管线上的晶体管,节省能耗。我们在开启超线程的情况下在SPECViewperf中执行四个线程,这就意味着会有一半管线很清闲甚至空闲。
Viewperf能耗测试 |
XP SP3 |
Vista Ultimate SP2 |
7 Ultimate |
平均能耗(W) |
247 |
248 |
207 |
测试结果证明了Windows7内核多线程处理机制的有效性,系统能耗相比XP/Vista都降低了16%,整整40W,所以从建设节约型社会的角度说,也应该升级到Windows7。
2014-05-13 14:18:45