[英]How does Closure Compiler work?
我想知道Google的Closure编译器如何工作。 例如,我可以使它转换如下函数调用:
if (MyApp.isArray(...)) {
// foobar
}
到实际实现:
if ((typeof sthing === 'Object' && sthing.constructor.toString().indexOf("Array") !== -1))
我之所以这样问是因为我有很多包装程序都绑定了某些功能,并且我希望Closure Compiler将它们转换回更少的函数调用。
实际上,一个额外的函数调用会明显降低应用程序运行速度吗?
实际上,一个额外的函数调用会明显降低应用程序运行速度吗?
很有可能没有,但是如果您真的想知道,您只需要尝试两个不同的代码示例,看看是否有所不同。 其中涉及很多因素(您的系统,浏览器,要调用的功能等),因此进行测试是必须的。 我建议对Firebug进行分析。
Closure Compiler(处于“高级”模式)将内联单行函数或仅被调用一次的函数。
对于编译器作者来说,显然,在第一种情况下,保存函数调用更为经济,并且单行函数通常足够短以至于与函数调用的长度相似。 在第二种情况下,它避免了函数调用,并且更短,因此肯定会获胜。
据我所知,它不超过一行或多次调用的内联函数。 这显然是为了避免代码膨胀。
我听说过的人说, 长的一行功能在成荫,但我一直看到他们在内衬。
我认为Closure Compiler不会为您做任何事情。 据我所知,它的主要重点是最小化源代码,并且如果这样做实际上更短,它只会内联函数调用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.