我对JavaScript“编译”的理解是它压缩和缩小代码以最终节省字节。
凝聚或缩小会使JavaScript运行得更快吗?
请考虑以下示例:
var abcdefghijklmnopqrstuvwxyz = 1;
// vs.
var a=1;
var b = function() {
// Here is a comment
// And another
// White space
return true;
};
// vs.
var b=function(){return true}
我通过jsPerf with little or no difference运行了这些示例。
除了保存字节外,JavaScript的编译能否使它更快或更慢?
答案 0 :(得分:17)
是的,就像Google Closure Compiler这样的变换意义上的编译可以使你的脚本运行得更快。考虑这个非常简单的例子:
var x = ["hello", "james"].join(" ");
编译为:
var x="hello james";
哪个代码更少,运行速度更快。显然这是一个愚蠢的例子。我希望你自己编写编译版本。但是,它确实证明了Closure能够提高性能以及改进文件大小。
来自Closure文档(重点补充):
Closure Compiler是一个用于下载JavaScript并运行得更快的工具。它是JavaScript的真正编译器。它不是从源语言编译成机器代码,而是从JavaScript编译成更好的JavaScript。
修改强>
对于Closure编译器实例增加JavaScript文件的大小以尝试提供性能改进的示例,请参阅我对this question的回答。
答案 1 :(得分:1)
Minified vs un-minified不应该在执行速度方面有任何差别。唯一的区别可能是缩小版本会更快解析,但即使你有一个非常大的文件(你不会发现你运行的测试有任何差异,它只是小)。
编辑:如果你只做基本的“缩小”,我所做的第一个声明是有效的。如果您正在使用像James所示的Closure编译器,那么如果Clousure工具会优化您的代码可能会有一些差异......