我想让BitBlt在屏幕捕捉方面获得更高的性能。当Aero保持启用状态时,在我的机器上,仅捕获屏幕的400x400像素区域可将捕获时间从平均50ms (满1920x1200)减少到约33ms (对于400x400)。这是一个令人失望的低改进。
我唯一的选择是禁用Aero吗?我知道,当Aero被禁用时,我可以在全屏上获得令人眼花缭乱的3ms捕捉。
发布于 2011-08-23 09:35:58
Aero模式下的屏幕捕获非常昂贵,因为它需要与DWM同步(想想等待每个人都不眨眼才能合影),并在Vista上锁定整个GPU管道。在Windows7GDI上,性能为improved by accelerate common GDI operations and reduce GDI locking)
可以尝试使用undocumented DWM functions或hooks来获取DWM使用的共享表面。但是,如果您计划处理图像数据(例如,发送到网络或保存到文件),则仍然需要付出代价,通过有时很慢的FSB将数据从视频内存移动到系统RAM。
发布于 2012-04-17 02:51:50
我想现在可以停用空气动力学了。我似乎不能真正超过15帧/秒,大概是因为它锁定了30帧/秒的边界,在下一个边界开始之前,我不能“进入”获得帧,然后不得不等待整个时间过去。
https://stackoverflow.com/questions/7154574
复制相似问题