javascript混淆移动浏览器的速度有什么影响?

时间:2011-05-27 20:43:25

标签: javascript mobile obfuscation

我想问一下是否有人测量了一些javascript混淆器对结果代码的影响。我的目标是移动用户,因此速度很快。而且我特别想尝试连续在同一个代码上运行2到3个不同的混淆器,这会很好地模糊代码,但我担心它会对速度产生影响。

5 个答案:

答案 0 :(得分:3)

不应该。编译器/口译员可能不关心你的符号是什么,只要它们是正确的。

答案 1 :(得分:1)

您的问题确实需要对自己的javascript进行分析才能得出有用的答案。

通常情况下,混淆实际上会加速javascript,因为文件大小减少了(加载速度更快),符号得到的名字也很少(比较少)。

答案 2 :(得分:1)

如果混淆器正在进行一些编码并调用eval,就像有些人一样,那么在脚本加载时会有性能损失。在运行之后,应该没有区别,并且如前所述,由于较慢的大小,它可能会加速您的代码。

答案 3 :(得分:1)

大多数JavaScript混淆器仅缩小并重命名局部变量,这非常容易使用美化器进行逆向工程。

我发现的最佳组合是DojoToolkit和高级模式下的Closure编译器。

高级模式下的关闭使得JavaScript代码几乎不可能进行逆向工程,即使在通过美化器之后也是如此。一旦您的JavaScript代码被混淆,超出任何认可和任何反向工程的可能性,您的HTML将不会泄露您的大部分秘密。

此链接用于在移动应用程序的高级模式下使用Dojo Toolkit和Closure Compiler:

http://dojo-toolkit.33424.n3.nabble.com/file/n2636749/Using_the_Dojo_Toolkit_with_the_Closure_Compiler.pdf?by-user=t

高级模式下的Closure编译器实际上使JavaScript在移动环境中运行更快,因为它具有工业规模的优化。例如,函数的内嵌,原型方法的虚拟化,命名空间折叠,死代码删除等都会使代码运行得更快,因此它不仅是一个混淆器,它也是一个优化编译器。

我自己的基准测试在iPad上运行代码的速度提高了10-20%,在Android上运行速度提高了30%。内存使用量也减少了。

答案 4 :(得分:0)

这取决于混淆的含义。

如果您指的是缩小,使用像JSMin这样的工具,则效果为零。

如果您正在谈论像Packer这样的事情,那么eval过程确实会对代码执行所需的时间产生影响。在速度较慢的设备上,这种影响可能很大。

相关问题