.NET WebBrowser JavaScript性能差

.NET WebBrowser JavaScript性能差,.net,performance,webbrowser-control,.net,Performance,Webbrowser Control,我使用.NET WebBrowser Control 2.0在我的应用程序中查看Internet上的网站,效果很好!不幸的是,我们发现了一个巨大的缺点:速度。据我所知,sunspider中的JavaScript 6000ms+与IE10中的150ms相比,控件的性能一直非常差。这也可以通过使用Maxthon浏览器的“Retro”模式进行验证,这是一个最简单的工作示例,即一个只包含浏览器而不包含其他逻辑的简单表单,以及Visual Studio的内置浏览器,它们的性能都一样差。它们都使用通过注册表

我使用.NET WebBrowser Control 2.0在我的应用程序中查看Internet上的网站,效果很好!不幸的是,我们发现了一个巨大的缺点:速度。据我所知,sunspider中的JavaScript 6000ms+与IE10中的150ms相比,控件的性能一直非常差。这也可以通过使用Maxthon浏览器的“Retro”模式进行验证,这是一个最简单的工作示例,即一个只包含浏览器而不包含其他逻辑的简单表单,以及Visual Studio的内置浏览器,它们的性能都一样差。它们都使用通过注册表打开的控件的IE10版本,因此理论上可以预期类似的性能,或者我们认为是这样。 通过Spy++查看IE10和使用托管控件的程序之间的差异,可以找到Shell DocObject视图的另一个包装器:ShellEmbedding

在DesktopGap的托管WebBrowser控件的下部显示包装器,而IE的浏览器窗口可以在上部不嵌入外壳的情况下看到

我认为,这是业绩不佳的原因——但我既不知道如何解决这一问题,也没有任何好的来源——这导致了我的问题:

有没有办法提高WebBrowser控件的性能

到目前为止,我们的主要想法是以某种方式删除ShellEmbedding,并在可能的情况下直接实例化ShellDocObject视图;GPU_渲染已启用,IE10模式处于活动状态

此外,CSS处理似乎也比IE更糟糕,所以可能存在某种联系

干杯


克劳斯

我的建议是检查您是否使用了正确的doctype指令或正确的浏览器模拟模式

我还使用WebBrowser组件,并通过注册表强制它使用IE10模式,而不管doctype指令设置HKEY\U CURRENT\U USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE\u BROWSER\u EMULATION\myexe.exe到DWORD 10001十进制

测试此html页面以查看js速度是否存在差异:

<!doctype html>
<html>
<head>
<script>
    var tick, tock;
    function start() {
        tick = Date.now();
        for (var i = 0; i < 10000; ++i) {
            var span = document.createElement('span');
            testDiv.appendChild(span);
            testDiv.removeChild(span);
        }
        tock = Date.now();
        alert(tock - tick);
    }
</script>
</head>
<body>
    <button onclick="start();">Click to start</button>
    <div id="testDiv"></div>
</body>
</html>
在我的电脑上,我得到了以下结果: IE10:~430ms WebBrowser应用程序:~470ms 铬:48毫秒

正如你所看到的,在我的测试中,IE10和WebBrowser应用之间似乎没有什么区别。区别可能在于,该应用程序并行处理其他CPU,这可能需要几毫秒的时间。然而,与chrome的区别是一个因子10,这是相当惊人的

问候,,
David

在尝试在其他电脑上重现该问题后,似乎是我的电脑——或者更具体地说是我的用户档案——出了问题。然而,我们无法找出到底是什么原因,因此只需重置它,WebBrowser的性能就又回到了可接受的水平


谢谢你的努力

谢谢你的回答,不过我们已经解决了问题:我的用户配置文件或注册表有问题,谁知道呢?重置它会推动IE性能:D