【发布时间】:2011-01-04 14:05:11
【问题描述】:
到目前为止,大多数主流浏览器已开始将优化 JIT 编译器集成到其 JavaScript 解释器/虚拟机中。这对每个人都有好处。现在,我很难确切知道它们执行了哪些优化以及如何最好地利用它们。每个主要 JavaScript 引擎的优化参考有哪些?
背景:
我正在开发一个编译器,它可以从更高级和更安全的语言生成 JavaScript(无耻的插件:它被称为 OPA,它非常酷),鉴于我正在生成的应用程序的大小,我会就像我的 JavaScript 代码一样快并且尽可能节省内存。我可以处理高级优化,但我需要更多地了解执行了哪些运行时转换,以便了解哪些低级代码会产生最佳结果。
我想到的一个例子:我正在编译的语言将很快集成对惰性的支持。 JIT 引擎在惰性函数定义方面表现良好吗?
【问题讨论】:
-
就我个人而言,我认为利用编译器/jit 优化的最佳方法是尽可能自然、可读和可维护地生成代码,并让编译器/jit 发挥它的魔力。任何专门针对编译器优化的尝试都可能导致代码的可维护性降低,并且在一两年内,当编译器全部更改时,您的优化将不再有效。
-
好吧,可读/可维护的代码并不是我真正的目标。我是从一种与 JS 完全不同的语言编译的,所以我不希望任何人对生成的 JS 做太多的阅读。至于 JIT 的魔力和优化的无效性,嗯,是的,你说得有道理。
标签: javascript ajax performance jit