GDI+的效率真的好低

本文通过实际测试展示了GDI+在不同场景下的绘制效率,并指出其内部机制导致的性能瓶颈。对于需要高帧率实时绘制的应用,建议考虑使用DirectDraw或Direct3D等替代方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 今天试了一下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+可以用在一些静态绘制上。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值