怎样提高bitblt函数的执行效率?

如题,bitblt在win7系统中执行时间在30ms左右。有什么编程方式,让该函数执行时间在10ms以内。

用directx 2d api画图,后者基于gpu,效率比基于gdi的函数快很多。

提高程序执行效率的方式有:
1.使用接近低层语言编写程序
2.使用Release模式编译
3.多线程加速,如TBB(不推荐,因为需要自己重新优化代码结构,也不推荐GPU加速,因为中间加了一层壳,对付杀鸡的活,牛刀并不一定能占多大优势的)
4.不要使用调试模式,直接运行EXE
5.提升电脑配置等等

其实Bitblt的原理就是内存直接拷贝,其效率是经过系统优化过的,已经是非常高了,而且它的CPU占用也是最低的

这个函数是设备上下文绘图windows api之一,如果要提升,也是os 开发者层面的东西,与客户端程序员关系不大。唯一能做的,就是提升cpu运行
速度(升级硬件) ,未必值得。

单就这个BitBlt函数要提速的话,可以采取局部拷贝的方式,每次只拷贝不相同的地方。
如果是简单的动画或屏幕防闪烁处理的话,在中间加一个buffer就行了,每次在后台对buffer进行拷贝,然后再贴上去。

WIN7下直接关闭系统特效的那个启用桌面组合就能从30MS到10MS了,不过这个仅限于WIN7,在WIN10上依然慢,我把所有特效都关了依然没办法。
1. * WIN7下关闭启用桌面组合的API
#include "dwmapi.h"//引号换成<>
#pragma comment(lib, "dwmapi.lib")
DwmEnableComposition(DWM_EC_DISABLECOMPOSITION);
也就是关闭那个AERO特效的一部分