微软Windows 7发布后受到了市场和用户的追捧。虽然Windows 7的内核主要建立在Vista代码的基础上,但其几个主要的进展摆脱Vista给用户带来的烦恼,大大改善了用户体验。在内核中,一项重大的改变就是如何提升多线程应用的运行。该进展带来的好处就是降低了能耗,提升了可扩展性,并在理论上提高了性能。
为了验证Windows 7对桌面电脑带来的好处,技术人员采用最常用的反映多线程能力的桌面应用程序(即图形导向的软件)进行了测试。例如Adobe Photoshop和其它图形应用软件在启动和功能配置时自我检测桌面系统的负载量。在这种状况下,图形软件一般会使用所有的处理器内核和几乎全部的内存,使得系统能够提供最快的性能。技术人员一般用Viewperf基准测试(一个综合性的图形测试软件,由SPEC标准性能评估公司颁布的)和Cinebench测试(这是一个单纯的图形渲染测试基准工具),这两个软件是免费的,可以从相关的网站下载后使用。
测试的硬件平台是戴尔Precision T3500工作站。戴尔T3500是一款入门级工作站,一般用于高端图形用户。它有四核心Xeon W3540(Nehalem架构)处理器,2.93GHz的主频,一块Nvidia FX quadro 4800显示卡,4GB的内存。这种配置大约是12至18个月后高端桌面系统的主流水平。
在此次测试中,技术人员使用了三块相同的硬盘驱动器,戴尔工作站预装了Windows XP专业版、Vista旗舰版和Windows 7旗舰版,都是基于32位的,并且是最新版本的驱动程序。然后,技术人员在每个操作系统运行的基准测试。当测试下一个操作系统时,会将前一次测试时用的硬盘换掉,以确保每次测试时不同版本的操作系统运行在系统的硬件上。最后的测试结果如下表:
三个版本Windows的性能基准测试结果
测试基准 (数值大的好) |
Windows XP SP3 |
Windows Vista SP2 |
Windows 7 Ultimate |
SPEC Viewperf 10 (SMT off) |
95.84 |
142.95 |
139.35 |
SPEC Viewperf 10 (SMT on) |
93.45 |
145.30 |
138.80 |
Cinebench 10 (SMT off) |
3.43 |
3.40 |
3.48 |
Cinebench 10 (SMT on) |
3.98 |
4.07 |
4.09 |
这些结果表明,在考虑是否部署Windows 7时,性能应该被视为是从Windows XP升级到Windows 7的合理理由,但性能的因素不足以让Vista用户转向Windows 7。Windows 7基于Vista内核的因素使得两者的性能比较接近。
让人惊讶的是,Windows 7的多线程变化并没有提供更多的性能提升。对此的解释是Windows 7如何来管理超线程。Windows 7多线程能力的主要变化包括增加处理器的亲和力和Windows内核调度锁定的变化。这种被称作“玻璃眼”的技术是现代操作系统的核心内容,也即内核如何阻止两个线程在同一时间内访问相同的数据或资源。
任何时候,一个线程想要访问一个可能另一个线程也需要访问的数据,就必须使用锁定机制,以确保只有一个线程可以修改该数据。在Windows 7之前,当一个线程需要获取或访问一个锁定时,它需要通过一个全球性的锁定机制。这种机制通过内核调度锁来处理提出的要求。但因为它是独特的、全球性的,它处理的需求可能来自数以千计的Windows硬件平台。因此,这个调度锁就成为了一个主要瓶颈。事实上,这也是Windows Server在相当长的一段时间内最多只能在64个处理器上运行的主要原因。