服务器 频道

性能提升10% Vista/7系统性能对比测试

  【IT168评测中心】在《比Vista更完善 Windows 7图形架构解析》中笔者分析了Windows 7的图形架构的改变,这些改变带来了一些很显著的变化,如下面所示:

Windows 7图形架构更新:
WDDM 1.1:新的驱动模型
DirectX 11:更新的Direct3D 11,以及相关的新Direct2D API
DXVA-HD:高清视频回放加速
显示设备连接和配置
色彩管理
高DPI输出和可读性
多GPU系统
联合显示适配器(又叫联合渲染)

  很奇怪地,图形架构的更新目前影响最显著的地方并不是直接的游戏画面,而是在日常工作方面,我们将会感觉到Windows 7使用起来更流畅,为什么呢?这是因为Windows是一个以图形界面为核心的一个操作系统,图形性能更好了,操作系统有可能从中获益。


即将到来:微软下一代操作系统Windows 7

  具体来说,由于GDI接口方面的更新,系统性能得到了提升,下面我们就来通过测试表现这一点。首先我们温习一下关于这方面的理论依据:)

  先从WDDM模型说起,它是图形架构的基础,Windows 7的改动对图形性能/系统性能的影响一部分被包括在这里:


Windows 7核心图形架构

  Windows应用程序使用各种API和系统图形组件通信,比如GDI、Direct3D、OpenGL。而系统组件通过WDDM与硬件交互。我们首先最关注的是GDI,Graphics Device Interface,是Windows 最重要的部分之一,它大部分由GDI32.DLL 库中处理。GDI 的主要目的之一是支持与设备无关的图形编程,让我们摆脱DOS/Windows 3.x下的编写图形应用还要包括显卡驱动的痛苦,Windows GDI 使我们对图形的编程变得相对简单了很多。Windows的日常应用都是基于图形界面,因此GDI应用非常频繁,显卡还特地地支持GDI加速。

  从Vista起,Windows就采用了和XP使用的XPDM不同的新的驱动模型:WDDM,使用的驱动模型在很大程度上决定了一个系统的图形特性。Vista使用的WDDM版本为1.0,而Windows 7使用的改进版本为WDDM 1.1。


WDDM 1.1带来的改动挺多的
  为什么WDDM 1.1会带来性能提升呢?我们先来看看它之前的WDDM 1.0具有什么局限性:
 

WDDM:合成模型
 
  在垂直同步之谜 XP/Vista与3D性能测试中,笔者解释过XP/Vista的模型的不同之处,在WDDM模型下,所有的应用程序生成的显示画面最后会在DWM内进行合成为单一的最后输出画面,因此获得了更好的显示效果、额外效果以及可以支持更大的桌面,不过,原始的WDDM 1.0只是实现了这个大架构上的转换,细节上仍未够完美:

在Vista下,GDI和DirectX具有着不同的处理方法:Direct3D是硬件加速的,而GDI则不是,因此Vista用户在一些图形程序上会感到比XP慢;而且GDI应用程序先经过CPU软件处理到系统内存上,再传输到显卡驱动分配的GDI显存区域上,再由DWM负责将画面合成输出到显示器

Windows 7当中,GDI获得了硬件加速——不过在混合使用GDI和Direct3D API的时候,GDI仍然无法硬件加速,然而,GDI直接输出到驱动的GDI显存区域,减少了一个步骤,同时降低了内存消耗;显然,使用混合API来进行图形编程并不是一个好主意

老的WDDM 1.0处理GDI应用程序就如前面说过的一样

而在Windows 7 WDDM 1.1模型当中,单独的GDI将会通过WDDM与GPU进行硬件加速,同时经过GDI显存区域输出到DWM,表现在实际操作上,就是大部分窗口操作都变得比Vista更流畅,日常工作更快捷

  GDI的改进还有一部分,这部属于Windows 7的DirectX改进,这部分也提升了日常应用的性能,不过它目前有一个问题,先看,页末再说:)

 
Windows XP的Direct3D/GDI驱动架构,GDI通过DDI获得显卡的硬件加速,如各种窗体的绘画都是操作系统下令来让显卡直接执行


Windows Vista核心图形架构,比起XP来要丰富了很多,但是GDI突然失去了硬件加速,这也是Vista让人觉得慢的原因之一


Windows 7核心图形架构,老的GDI/GDI+仍被单独支持,不过,Windows 7提供了它们对应功能的新的实现方法

  在Windows 7下,以前Vista无法硬件加速的GDI/GDI+的工作重新划分、引入新的Direct2D和DirectWrite API来完成,GDI+是是为C/C++开发者提供的一个基于类的API,这个+和C++后面的+符号意思有点像。

   以前的图形操作大部分由Diredt3D和GDI/GDI+完成,而在Vista当中,GDI是无法硬件加速的——因此Vista显得很慢,在Windows 7中,GDI的工作除了通过WDDM模型的改变获得硬件加速之外,它们还按照面向的应用重新划分为Direct2D、DirectWrite和DXGI 1.1,这些新的API或者新分配到的API具有着硬件加速,例如,Direct2D就实际上是通过Direct3D 10来完成加速:

Direct2D:
硬件加速的即时模式2维图形API,它在2维几何图形、位图和文本方面有着较高的性能和质量。Direct2D API是设计与GDI、GDI+和Direct3D之间进行互操作的。

DirectWrite:
DirectWrite提供高质量的文本呈现、具有独立分辨率的轮廓字体、完整的Unicode文本以及布局支持。在使用Direct2D的时候,DirectWrite是硬件加速的。


当系统不支持Direct3D 10的时候,Windows 7会通过一个额外的10Level9软件层使用D3D9来完成工作,显然,为了最好的效率,你需要使用Direct3D10的显卡,因为Windows 7的DWM基于Direct3D 10

字体抗锯齿:DirectWrite效果

Direct3D 11

  Windows 7带的Direct3D 11是D3D10的超集,它的特点是可以同时支持运行在Direct3D9和Direct3D10.1硬件上,实际上,DirectX 11会提供Vista的支持,而不是像Direct 10出来时那样,只支持Vista而无法兼容上一代系统,这导致了软件开发厂商们向DirectX 10转移的缓慢。DirectX 11支持多个硬件平台和多种操作系统的特性让其更容易被接受。同时Direc3D 11本身也具有这不少的改进,这一点会有专文讨论,这里先谈论Windows 7对整个图形操作的改进,通过更多地将GDI/GDI+纳入DirectX体系获得硬件加速,图形界面的性能会越来越好。微软希望将所有的图形操作都构建在DirectX之上。


通过Vista中缺失的GDI硬件加速纳入到DirectX体系中重新获得硬件加速,并且性能要更快;未来显卡厂商们将不再需要提供GDI加速

  问题所在:理论上,你要使用新的API重新编写应用程序才行,这样新的API带来的效果一时半会是无法享受到了。

  测试使用了一台配置并不怎么高的机器,这个配置可能还比较接近当前比较主流的配置,毕竟不是每个人都买得起Core i7,关于这点我们会在后面谈到Core 2和Core i7的区别。   

测试平台、测试环境
测试分组
类别Windows 7/Vista对比测试平台
处理器子系统
处理器Intel Core 2 Extreme X6800
主频2.93GHz
主板
主板型号Intel D975XBX
芯片组Intel 975X + Intel 82801GR(ICH7R)
主板Intel Chipset Device Software
9.1.1.1015
内存控制器双通道ECC DDR2 800
内存2GB DDR2 800 SDRAM x4
系统磁盘子系统
磁盘控制器LSI SAS 3041E-R
磁盘控制器规格4x SAS 3Gb/s
HostRAID 0/1
磁盘控制器设置SAS 3Gb/s
NCQ
磁盘控制器驱动LSI SAS
1.30.02 x64
磁盘Seagate
Savvio 15K.2 x1
磁盘规格15000RPM
146GB
SAS 6Gb/s
16MB Cache
磁盘设置SAS 3Gb/s
NCQ
50GB系统分区
图形子系统
显卡NVIDIA GeForce 8800GT
G92核心 650MHz
2000MHz 256bit 512MB显存
DirectX 10规格
显卡驱动NVIDIA Forceware Driver190.38
软件环境
操作系统Microsoft
Windows 7 Ultimate x64
Microsoft
Windows Vista Ultimate x64 SP2

新的操作系统:Windows 7

  操作系统选择了64位版本,笔者认为,从Windows 7开始,64位操作系统已经走向成熟了。其实Vista 64也是一个好系统。在下面的测试中,笔者也会穿插一下32位Vista的成绩。测试程序则是PCMark05和PCMark Vantage套件,这是一套两个版本的软件模拟了用户实际的工作环境,包含了各种各样的操作,如游戏、多媒体播放以及内容创作等,对实际用户具有一定的参考价值。

  在测试之前,我们先来看看俩测试,一共三个图:


Windows Vista Ultimate SP2 x86 VS x64:PCMark05
 

Windows Vista Ultimate SP2 x86 VS x64:PCMark Vantage 32bit

  简而言之,上面的蓝条是32位Vista的成绩,下面的红条是64位Vista的成绩,很不幸,可以看到32位下的性能要比64位下的性能要好,我们必须得说,这个并不是操作系统的罪过,这个结果大部分是由一个部件——CPU来引起的,原因如下:

前端单元对比:Core、yonah、P4

 

  我们使用的Core 2 Extreme属于Penryn微架构,或者说,传统的Core 2微架构,它具有的一项技术是Macro Fusion宏聚合:


Macro Fusion功能

  这项技术可以将一些比较并跳转的分支x86指令集合(CMP+TEST/JCC)最终解码为单条uop(CMP+JCC),从而提升了解码器的带宽、降低执行指令数量,让系统运行效率更高。很不幸的是,Core 2的Macro Fusion并不支持64位模式——一直到Nehalem才提供了支持。简而言之,Core 2及之前的处理器都未对64位应用进行了最优化。AMD的处理器没有这个问题。

  除了上面这个突出的一点之外,通常的64位计算会由于代码长度的略为增加而会略为降低解码器的输出效率,这些综合起来,就得到了上面的PCMark结果。当然,这个结果的产生还有另外一个原因,继续看下面的这个测试:


32位 vs 64位@64位应用环境,64位结果在下面

  我们必须记起,最前面的测试都是基于32位的测试程序,而在64位环境下自然要采用64位的才好,上面在64位环境下进行的比较表明,64位系统搭配64位应用的性能表现是很不错的。实际上64位Vista下的PCMark Vantage x64比32位Vista下的PCMark Vantage x86性能要高。当前的处理器架构设计在进行64位应用确实会碰到解码器效率略微下降的现象,但是它的影响从比率来看是很低的,而64位环境下倍增的寄存器数量和更大的内存容量支持以及64位操作系统带来的更好的系统资源架构等等,带来的好处更大,并且也能良好地兼容32位应用。现在没有什么理由不使用64位系统了。

  关于处理器微架构和64位计算的进阶内容,可以参看:

Intel Nehalem-EP处理器首发深度评测

64位对决32位 SPEC CPU运算效能测试

突破4GB内存屏障 64位平台解析(上)

突破4GB内存屏障 64位平台解析(下)

 

  接下来是真正的测试:在64位条件下的Windows Vista对垒Windows 7。

 

  PCMark05是一个基于XP环境的应用测试,而PCMark Vantage则是基于Vista/7环境的应用测试,需要显卡至少支持SM 2.0。在两个测试下,Windows 7的表现都显得更好,PCMark05下要高出13%,PCMark Vantage下则高出10%。这些包括了如游戏、音乐、网络、内容创作等虚拟日常应用的测试,有不少组件是依赖于图形子系统的,例如,上网浏览,那么浏览器会使用GDI,Office操作,也会用到GDI,游戏则可能混合使用GDI和Direct3D,等等。这些应用中,Windows 7的新图形架构都发生了作用,尽管Direct2D等新DirectX 11 API还没能够用上。

  【IT168评测中心】GDI随着Windows的出现而存在很久了,而自从图形卡进入3D时代而来,3D性能不断地提升,2D性能离人们的想象越来越远,Windows 7再一次将它拉了回来。


Windows 7默认壁纸

  图形界面,或者说GUI一直是Windows操作系统的基石,也是其名字的由来,新的Windows 7进一步改进了图形应用的体验,它通过新的图形架构,进一步拉近了用户与GPU之间的距离。Windows 7通过充分发挥显卡的能力来提升用户体验,仅仅是更换了操作系统,PCMark Vantage的测试成绩就比不成熟的Vista提升了10%(PCMark05提升的还多一些),因此我们的观点是:Windows 7,值得升级。

  接下来笔者可能会写一系列的操作系统架构的文章,敬请期待:)如果希望看到什么特定的操作系统,可以在下面评论中留言。

企业专用操作系统 Windows 7企业版测试

比Vista更完善 Windows 7图形架构解析

(完)

0
相关文章