Dhe*_*.S. 19 javascript obfuscation performance minify
我看到了使用各种缩小器和混淆器压缩的JavaScript代码的性能报告.令人惊讶的是,除了Closure高级模式之外,在大多数情况下,所有其他minifiers输出的代码都比未压缩的代码更差.我们如何解释?
向下滚动到页面末尾以查看报告.这是截图:

传说:
首先让我扮演魔鬼的拥护者:代码实际上没有"执行"任何东西(我的意思是没有任何严重,除了JS Packer).它本质上是函数,对象和属性的定义.
JS Packer不生成JavaScript代码,而是生成运行时必须解压缩的压缩文本.这就是为什么它慢得多.使用Advanced Optimization的Google Closure会尽可能替换标识符.因此,在解析脚本时必须具有性能优势.
这就是说可以牺牲代码大小的性能.一个例子是替换true和false使用!0和!1.这取决于JavaScript引擎.它可以在第一次调用之前由引擎优化,之后,在一些调用之后,从不......谁知道;)
新发现
我在此期间进行了一些分析,并意识到我忘记了一件事:垃圾收集.这种影响足以解释脚本和浏览器之间的一些差异(不同的引擎!).
再加上代码没有做太多而且你有东西的事实.在一次测试中,对于未压缩的垃圾收集,CPU时间约为3%,对于JSMin,则为9%(!).这意味着几乎相同的代码完全不同的结果.
甚至更新的发现
当你首先运行JSMin时,它比未压缩的更快.我尝试了几次,总是得到相同的结果.这证实了先前的发现.我现在很自信,我们找到了解决方案.