JS中的函数声明速度差异
Posted
技术标签:
【中文标题】JS中的函数声明速度差异【英文标题】:Function declaration speed difference in JS 【发布时间】:2011-05-22 17:12:55 【问题描述】:我运行了一个简单的 jsperf 测试,在 Firefox 中运行时一切都按预期进行,但是当我在 Google Chrome 中运行测试时,我感到很困惑。
测试是测试在 javascript 中声明函数然后调用它们的不同方式。我的猜测是 Chrome 正在对 JavaScript 函数进行某种优化,但我不确定是什么或为什么会有如此大的差异。非常感谢任何有助于更好地理解这一点的帮助或链接。
测试链接 => http://jsperf.com/function-assignment-semicolon/2
在 Firefox 中测试运行:
在 Chrome 中测试:
编辑:
我期待我从 Firefox 获得的结果,因为我希望它们是 - 每次测试都差不多 - 比在 Google Chrome 中运行时慢
【问题讨论】:
你为什么期待 Firefox 显示的结果? 我认为这是对微优化的强烈影响,除非你真的想了解不同浏览器如何优化的内部原理,否则我会说 - 转储它! @Gumbo,我希望它们与 Chrome 相当相似且速度较慢,但确实如此。 不确定我是否会在这里跳上 micro-optimization = bad 火车,这个问题很有趣。话又说回来,不同的 Javascript 引擎产生不同的结果既不是震惊也不是启示...... 【参考方案1】:死代码,完美的优化器会删除测试中的所有内容。各种新闻网站都提到了这一点,最近发布了谷歌的曲轴引擎。样式之间的差异表明了实现死代码优化的难度。
http://tech.slashdot.org/story/10/12/07/2027259/Google-Quietly-Posts-Big-JavaScript-Engine-Update
【讨论】:
很好的链接,但我认为我的 chrome 版本没有您的链接所谈论的更新。以上是关于JS中的函数声明速度差异的主要内容,如果未能解决你的问题,请参考以下文章