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