使用WebBrowser控件时IE 11 WebGL性能变慢

时间:2014-07-31 04:51:54

标签: wpf winforms internet-explorer webbrowser-control webgl

我正在尝试将Cesium嵌入到WinForms或WPF应用程序内的WebBrowser控件中(使用IE 11)。作为测试,我正在使用此链接:

http://cesiumjs.org/Cesium/Build/Apps/CesiumViewer/index.html?stats=true

它“有效”,但比直接使用IE 11要慢得多。在IE 11中,一切都以60fps运行;在具有WebBrowser控件的简单WPF或WinForms应用程序中,它以4-6 fps运行。我一直无法追查问题的原因。这是一个空白的窗体或WPF面板,其中WebBrowser控件设置为填充整个窗格。我无法想象没有透明度或其他问题。我注意到,在Visual Studio嵌入式浏览器中访问上述链接具有相同的效果。 WebBrowser是否控制不是JIT JavaScript?这是一个WebGL问题吗?有没有办法我可以调试这个来弄清楚发生了什么?任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:12)

看看这个article

  

事实证明,嵌入式浏览器使用的是IE7渲染引擎   默认情况下,即使安装了较新版本的IE。还有,GPU   渲染已关闭,因此浏览器使用软件渲染   仅

     

通过设置以下feature control registry keys

来解决此问题      
      
  • FEATURE_BROWSER_EMULATION - 设置为所需的IE版本   渲染引擎
  •   
  • FEATURE_GPU_RENDERING - 设置为1以启用GPU   渲染。
  •   
     

可以在HKEY_LOCAL_MACHINE或下设置这些键   HKEY_CURRENT_USER用于特定程序(可执行文件名),使用   嵌入式浏览器。 HKCU是首选,因为该计划不需要   写入HKCU的管理员权限。

     

所以当我将FEATURE_BROWSER_EMULATION设置为10000(对于IE10)并设置时   FEATURE_GPU_RENDERING为1,性能提升至~850码鱼@   60 fps。仍然不如1000+ fishies的独立IE好,但是   相当不错!

答案 1 :(得分:2)

您需要更改这两个注册表项才能使其适用于所有用户

HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Internet Explorer \ MAIN \ FeatureControl \ FEATURE_BROWSER_EMULATION

HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ Internet Explorer \ MAIN \ FeatureControl \ FEATURE_BROWSER_EMULATION

对于单个用户,只需使用

HKEY_CURRENT_USER \ Software \ Microsoft \ Internet Explorer \ Main \ FeatureControl \ FEATURE_BROWSER_EMULATION

添加DWORD确保将值设置为11999而不是11001,如下面的链接所示,并且应将其设置为IE 11标准模式。虽然它注意到使用无效值会将其设置为最新值,因此将其设置为99999可能适用于下一个版本。

http://weblog.west-wind.com/posts/2011/May/21/Web-Browser-Control-Specifying-the-IE-Version