IE9 Javascript比IE8慢,即';太奇怪了!

IE9 Javascript比IE8慢,即';太奇怪了!,javascript,internet-explorer-9,Javascript,Internet Explorer 9,我很难解释为什么以下代码在IE9中运行得比IE8慢 下面是一些测试代码,在(最新)的FF/Chrome/Safari操作系统X、WinXP和WinXP上的Win7plusIE7&8中,它们在大约半秒钟内平稳运行(为简单起见,我删除了使其在IE6中工作的调整) 由于某些原因,我无法解释,IE9中的情况很糟糕,既慢又笨重。缩短setTimeout的时间会使它更快,但也不会减少不稳定 我已经尝试过消除一些可能的瓶颈并对其进行基准测试(例如Math.min…所有这些都没有改变) 我被难住了…有人能给我指

我很难解释为什么以下代码在IE9中运行得比IE8慢

下面是一些测试代码,在(最新)的FF/Chrome/Safari操作系统X、WinXP和WinXP上的Win7plusIE7&8中,它们在大约半秒钟内平稳运行(为简单起见,我删除了使其在IE6中工作的调整)

由于某些原因,我无法解释,IE9中的情况很糟糕,既慢又笨重。缩短setTimeout的时间会使它更快,但也不会减少不稳定

我已经尝试过消除一些可能的瓶颈并对其进行基准测试(例如Math.min…所有这些都没有改变)

我被难住了…有人能给我指一下正确的方向吗?…最好是不需要浏览器嗅探的方向

这是测试代码

<div id = 'panel' class='noShow' style='background-color: #aaa;'>
    <div id = 'wrapper' class='slideWrapper'>
        <p>xxxxxxxxxxx</p><p>xxxxxxxxxxx</p><p>xxxxxxxxxxx</p><p>xxxxxxxxxxx</p><p>xxxxxxxxxxx</p><p>xxxxxxxxxxx</p><p>xxxxxxxxxxx</p><p>xxxxxxxxxxx</p><p>xxxxxxxxxxx</p><p>xxxxxxxxxxx</p>
    </div>
</div>


<script type = 'text/javaScript'>

    var e = document.getElementById('panel');
    var w = document.getElementById('wrapper');

    w.style.overflow = 'hidden';                                                
    w.style.height = '1px'; 
    var sh = w.scrollHeight;
    show();
    function show()
    {
        setTimeout(function()
           {
                w.style.height = Math.min(sh, (w.offsetHeight + Math.ceil(sh/15))) + 'px';  
                if(
                     (w.offsetHeight < sh)
                ) 
                {
                    show(e);
                }
                else 
                {
                    w.style.height = 'auto'; 
                }                       
        }, 20); 
    }   
</script>

XXXXXXXXXX

XXXXXXXXXX

XXXXXXXXXX

XXXXXXXXXX

XXXXXXXXXX

XXXXXXXXXX

XXXXXXXXXXXXXXXXXX

XXXXXXXXXXXXXX

var e=document.getElementById('panel'); var w=document.getElementById('wrapper'); w、 style.overflow='hidden'; w、 style.height='1px'; var sh=w.高度; show(); 函数show() { setTimeout(函数() { w、 style.height=Math.min(sh,(w.offsetHeight+Math.ceil(sh/15)))+px; 如果( (w.离视
您运行的是64位版本的IE 9还是32位版本?64位版本没有运行Chakra,这是32位版本的优化JavaScript引擎

IE9默认在VMware虚拟机上进行软件渲染(从2011年7月8日起)应该在不久的将来发布一个修补程序,但没有为此给出时间表。

在虚拟化环境中运行时,总会有奇怪的性能变化。驱动程序的选择和软件如何卸载处理将产生影响。您是否尝试过更新系统上的驱动程序?

好问题关于…感谢您的提醒。VMWare Fusion 3中的64位Win7…为遗漏道歉。啊!…好问题…VMWare Fusion 3中的64位Win7…为遗漏该数据道歉。哎呀!为双重发布感到抱歉…我点击了!我想这可能是我的解释。我将下载32位版本并尝试,然后向您报告…migh再过几天就好了。我是说32位版本的IE 9,你可以在win 7 64位上运行它没有问题……这对我来说是新的……我会检查并报告谢谢@TodK……非常有用……我想这就解释了