BitBlt性能与Aero启用 [英] BitBlt performance with Aero enabled

查看:438
本文介绍了BitBlt性能与Aero启用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想从BitBlt获取更多的性能捕获屏幕。当Aero保持启用时,仅捕获屏幕的400x400像素区域可将捕获时间从我的机器上的平均50ms(全1920x1200)减少到大约33ms(400x400)。这是一个令人失望的低的改进。

I'd like to get more performance out of BitBlt for capturing the screen. When Aero remains enabled, capturing only a 400x400 pixel area of the screen reduces capture time from an average of 50ms (full 1920x1200) to about 33ms (for 400x400) on my machine. This is a disappointingly low improvement.

我的唯一选项是禁用Aero吗?我知道,当Aero被禁用时,我可以在全屏幕上获得一个盲目的快速拍摄。

Is my only option disabling Aero? I do know that i can get a blinding fast 3ms capture on the full screen when Aero is disabled.

推荐答案

Aero模式下的屏幕截图非常昂贵,因为它需要与DWM同步(想想等待大家不要眨眼眼睛采取组照片),并锁定整个GPU管道在Vista。在Windows 7上,GDI性能为

A screen capture in Aero mode is very expensive because it requires synchronization with the DWM (think about waiting for everyone not blink their eyes to take a group photo), and locking the entire GPU pipe on Vista. On Windows 7 GDI performance is improved by accelerate common GDI operations and reduce GDI locking)

尝试使用未记录的DWM函数钩子以获得DWM使用的共享曲面。但是,如果您打算处理图像数据(例如发送到网络或保存到文件),您仍然需要付出代价,通过有时缓慢的FSB将数据从视频内存移动到系统RAM。

There are attempts of either using undocumented DWM functions or hooks to get the shared surface used by DWM. But you still need to pay the price to move data from video memory to system RAM via the sometimes slow FSB if you plan to process the image data (e.g. send to a network or save to file).

这篇关于BitBlt性能与Aero启用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆