【问题标题】:Techniques for minifying and optimizing the js code, are they really working?缩小和优化 js 代码的技术,它们真的有效吗?
【发布时间】:2013-04-05 00:53:55
【问题描述】:

我想知道以下任何技术是否会增加任何性能:

  • !!variable - 我在 jquery 及其插件中看到了这个 - 转换为 bool

  • null == 变量 - 如果您错过第二个等号,这会很有用。但是 SO 中有人声称这是因为 gzip 优化

  • 缩小和缩小变量 - 关于这个我对 IE 很感兴趣,它能否从缩小变量中受益

哪些是真的,哪些是无用的?

【问题讨论】:

  • 缩小完全不影响性能。只是为了节省带宽。
  • @freakish 变量的缩小呢?这两者都可以吗?
  • 收缩变量不会给您带来任何性能提升。如果你需要性能,那么你必须重构你的 JS 代码。它不会神奇地变得高效。 IE 和任何其他浏览器都不会从缩小中受益。

标签: javascript performance optimization


【解决方案1】:

是的,缩小可以构建更小的文件,如果你不尝试自己做,而是使用像优秀的 Google's Closure Compiler 这样的缩小器。

在执行性能方面,收益并不明显,甚至可能略有负值,具体取决于执行方式。但这不是目标:目标是节省带宽。

没有理由自己编写一个缩小器,除非你有足够的信心,你可以做得比已证明的那些提供的更好。这不是一件容易的事。

现在,看看你的第一个具体技巧(前两个命题),它们对于缩小几乎没有用。

注意JS缩小是独立于JS引擎的,这里没有具体的IE问题。

【讨论】:

    【解决方案2】:

    缩小作品。主要目标是使生成的 JS 文件更小,以便页面在加载 js 资源时不会使用那么多带宽。诸如 Google 的 Closure Compiler 之类的压缩器可以通过执行诸如消除死代码之类的任务来进一步缩小代码。

    更新

    您的前两个示例并不真正适用于缩小,性能节省可以忽略不计。正如我之前提到的,Google 的 Closure Compiler 将执行死代码消除。但它还可以做的是执行函数和不断内联,这可能会为您提供一些性能优势,但据我所知,即使是最激进的优化也不会做更多的事情。也就是说,我不知道有任何缩小器可以将您的代码转换为性能更高的代码。我不知道 IE 会从中受益多少,但我会说,由于代码确实没有被积极地转换为性能更高的代码,因此不会产生太大的影响。也许变量的缩小意味着浏览器内的符号表中占用的内存更少,但我认为这不会给你带来太多好处。

    【讨论】:

    • 我知道带宽节省,但我不关心它们。大多数页面用于本地网络。但问题是客户端真的很胖,有时候IE真的很慢。你能谈谈第一点和最后一点吗?
    猜你喜欢
    • 1970-01-01
    • 2017-02-18
    • 1970-01-01
    • 2010-11-26
    • 2012-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多