WinForms和Wpf示例之间的性能差异很大

时间:2015-03-02 11:04:19

标签: cefsharp

我注意到使用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

1 个答案:

答案 0 :(得分:2)

  

为无窗口浏览器调用CefRenderHandler :: OnPaint的最大帧速率(fps)。如果浏览器无法以请求的速率生成帧,则实际fps可能会更低。最小值为1,最大值为60(默认值为30)。

CEF文件的直接引用见http://magpcss.org/ceforum/apidocs3/projects/%28default%29/_cef_browser_settings_t.html#windowless_frame_rate

整个过程更受CPU限制,因为它受GPU限制。缓慢的部分是位图缓冲区在显示之前被复制到内存中。 CEF还支持当前未实现的DirtyRects,因此即使是小的图形更改也会强制重新绘制完整的屏幕。

当解决上游CEF问题1006时,我们可以考虑进行更多改进。 https://code.google.com/p/chromiumembedded/issues/detail?id=1006&q=label%3AOSR