今天试了一下GDI+的效率,我的CPU是core 2 2.6G,绘制2个图,只有大概70fps,也就是每秒钟只能绘制140个左右的图,耗尽CPU。
绘制的图形的大小好像对效率没什么影响。
原因就是GDI+中的Image类保存图像的时候是不依赖设备的存储格式(device-independent),这种格式在绘制到Graphics内部的HDC的时候,需要进行一次格式转换,这个是最耗时的。另外,GDI+实际上在内部可能使用了GDI,是一种wrapper,效率也会有损失。
微软的文档中提出了一种CachedBitmap类,以设备依赖(device-dependent)方式存储图形,但是遗憾的是这种图不能做各种变换,只能平板的绘制到屏幕,连wordtransform都不支持(只要你设置了wordtransform,图形立马消失)。
总结,GDI+很鸡肋,可能也就Matrix比较实用,效率太低,建议实时绘制的考虑使用DirectDraw或Direct3D。GDI+可以用在一些静态绘制上。