Tre*_*own 7 performance function-calls internet-explorer-9
正在寻找隐藏我的代码的方法,我发生了这个jsPerf测试.除了让我的函数调用缓慢的概念得到重申之外,我没有期待任何其他东西,我在IE 9中的结果真的让我陷入了一个循环.使用函数调用的代码更快,但仅限于这一个浏览器.我运行了多次,结果相同.我看不出测试设置不正确.什么可能导致这个奇怪的结果?
我的用户代理Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0正在Windows Server 2008上运行.
免责声明:我\xe2\x80\x99m jsPerf.com的创建者。
\n\n您的第一个测试如下:
\n\nvar i = 0;\nfor (i = 0; i < 1000; i++) {\n test()\n}\nRun Code Online (Sandbox Code Playgroud)\n\n为什么要for在那里包含循环?它只会扭曲结果。jsPerf 自动重复测试代码,直到执行足够的测试以获得统计上显着的结果。理想情况下,jsPerf 测试尽可能紧凑,并且只测试您真正想要测试的内容。在这种情况下,您\xe2\x80\x99对for循环性能根本不感兴趣\xe2\x80\x94您只想了解内联代码是否比调用函数更快。
如果您\xe2\x80\x99对创建强大的 jsPerf 测试用例的其他技巧感兴趣,请查看我的 #jsconfeu2011 演示文稿。
\n\n注意:我\xe2\x80\x99m并不是说冗余for循环是你\xe2\x80\x99看到这个结果的原因。这可能是一个因素,但可能还有其他因素进一步扭曲结果。这可能是 IE9\xe2\x80\x99s \xe2\x80\x9cdead 代码删除\xe2\x80\x9d 功能启动。
不管怎样,我\xe2\x80\x99已经分叉了你的jsPerf测试,删除了循环,并使变量成为全局变量,以避免死代码消除优化。http://jsperf.com/function-calls-vs-inline/3你能在 IE9 中测试一下吗?我目前手头没有 IE9 VM。
\n