我注意到使用http://www.vsynctester.com
时,CefSharp.WinForms.Example和CefSharp.Wpf.Example之间存在非常重要的性能差异(以FPS表示)在我的视频卡控制面板和CefExample Init()中的设置中关闭VSync时
settings.CefCommandLineArgs.Add("disable-gpu-vsync", "0");
对于CefSharp.WinForms.Example我得到 500 FPS (稳定) 对于CefSharp.Wpf.Example我几乎没有 30 FPS
据我所知,Wpf使用了屏幕外渲染,但是什么解释了同一网页的巨大性能差异?
我正在使用带有Win 8.1和NVidia GT 750M显卡的MacBook Pro。 CefSharp版本为8755a9496ffbd5f21bc6ef062bce687a22d83938(2015年3月1日)和Cef版本3.2171.1979
答案 0 :(得分:2)
为无窗口浏览器调用CefRenderHandler :: OnPaint的最大帧速率(fps)。如果浏览器无法以请求的速率生成帧,则实际fps可能会更低。最小值为1,最大值为60(默认值为30)。
整个过程更受CPU限制,因为它受GPU限制。缓慢的部分是位图缓冲区在显示之前被复制到内存中。 CEF
还支持当前未实现的DirtyRects
,因此即使是小的图形更改也会强制重新绘制完整的屏幕。
当解决上游CEF
问题1006时,我们可以考虑进行更多改进。
https://code.google.com/p/chromiumembedded/issues/detail?id=1006&q=label%3AOSR