【问题标题】:JavaScript: What is the performance gain by optimizing Name Lookups?JavaScript:通过优化名称查找可以提高性能吗?
【发布时间】:2009-12-21 09:26:01
【问题描述】:

我工作的公司给我们(或者更确切地说是我)买了 O'Reilly 的 jQuery Cookbook,我正在从头到尾阅读它。现在我在 5.13 谈论名称查找。它声称,在适当的情况下,针对名称查找进行优化的代码可以将性能提升高达 70%。在一个非常情景化的示例中,它声称速度甚至快了 35 倍,并将执行时间从 7 秒缩短到仅 0.2 秒!

我的问题是:名称查找优化通过哪个因素来提高实际情况下的性能?在 4k JS 行 AJAX 应用程序上多花几个小时值得吗?

【问题讨论】:

  • 用另一篇关于范围链的 JS 优化帖子编辑了我的答案

标签: javascript jquery optimization scope


【解决方案1】:

它的作用取决于它的实际使用方式。就像问一根绳子有多长一样。

我已经看到为 true、false、undefined 设置名称可以使 javascript 中的应用程序至少快 10 倍。它变得更快的原因是它不需要查看全局范围链内部。 Nick Zakas 在下面的 google 代码视频中很好地解释了这一点

http://googlecode.blogspot.com/2009/06/nicholas-c-zakas-speed-up-your.html

编辑:

我刚刚遇到这个,并认为它可能有用。它也是对范围链的快速解释。 http://www.phpied.com/extreme-javascript-optimization/

【讨论】:

    【解决方案2】:

    Nicholas Zakas 对此主题进行了一些研究,并在 Google Tech Talk 上讨论了这个问题。看来您可以获得有趣的性能增强。我不确定确切的数字,但可以肯定的是优化名称查找将提高代码的速度。

    当然,如果您将 10 年的遗留代码拖到身后,但运行良好,不用担心优化...但如果您的应用程序很慢,我会考虑优化代码。

    如果您决定进行重构,请尝试确定可以优化的内容。我建议使用javascript profiler of firebug 这样做。

    您甚至可以尝试优化您的代码的一小部分,查看您获得的性能提升,然后确定是否值得优化您的应用的其余部分。

    【讨论】:

    • 我正在优化几个月前我刚开始使用 JavaScript 和 jQuery 时编写的代码。我没有任何经验,所以我从书中描述的技术中学到了很多
    • 那么返回并重构代码可能是一个很好的练习。你会看到你进步了多少......当然你会讨厌你的旧代码^^
    猜你喜欢
    • 2016-12-20
    • 1970-01-01
    • 1970-01-01
    • 2010-11-27
    • 2014-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-27
    相关资源
    最近更新 更多