龙源期刊网
http://www.qikan.com.cn
GDI+
和
GDI
绘图性能对比实验
作者:王克茹
来源:《科技创新与应用》
2013
年第
25
期
摘
要:本文通过完全相同的算法分别使用
GDI
和
GDI+
技术进行图像显示,对两种不同的
技术进行对比试验来证明
GDI+
是否适用于图像实时显示。
关键词:
GDI
;
GDI+
;性能
GDI+
是在
GDI
的基础上做了封装、优化和功能扩展,支持包括
JPG
、
PNG
、
GIF
、
TIF
等
压缩格式的图像显示,绘图函数也加入了抗锯齿技术,显示效果更加细腻。
GDI+
技术出现的
初期功能方面的优势受到了热捧。但其缺点是图像显示性能差。众所周知,
Windows GDI
的图
像显示性能并不高,而
GDI+
技术的性能较
GDI
还要低,究竟低多少,作者查阅了大量的文
章,没有找到相应的实验数据。于是做了一项实验来量化
GDI
和
GDI+
之间的性能差异。
下面这段是
GDI
实现图形显示的代码:
经过实验,使用
GDI
技术在
657*657
的分辨率下,每次绘制
711
条线,每秒可以绘制
180-260
帧画面。
使用
GDI+
的方式采用了完全相同的算法和线的数量,代码如下所示:
经过实验,同样在
657*657
的分辨率下,使用
GDI+
技术没帧绘制
711
条线,每秒只能绘
制
5-11
帧画面,性能只有
GDI
的
1/44
,性能差距之巨大是实验前作者没有想到的。
做上述实验使用的计算机配置如下:
2D
技术在
DirectX 7.0
之后就不再继续发展了,后续之所以还有小幅性能提升是因为硬件
频率的提升,包括
CPU
,内存和显卡。
GDI+
技术根据实验来看已经完全无法承受动态图像显
示的性能要求,即使对实时性没有要求的情况下,显示的流畅性也很差,只能显示静态画面。
当今计算机的显示器尺寸越来越大,分辨率也越做越高,即使是
GDI
在低分辨率下具有一定
性能,高分辨率下的性能也很差。
而图形技术的发展近几年重点一直在
3D
技术上,所以如果需要实时显示动态画面最好还
是使用
3D
技术。但
3D
技术的另外一个弊端是程序设计的难度较大,依赖硬件加速。所以,
如果想要低成本,在性能和开发难度取折衷的选择应该是
GDI
技术,想要性能最优,建议使
用
3D
技术实现。