JavaScript优化

时间:2010-12-30 20:36:28

标签: javascript optimization spidermonkey

所以我一直在用JavaScript编写游戏(不是网页游戏,使用游戏引擎,其中JavaScript恰好是脚本语言)。不幸的是,游戏引擎的JavaScript引擎是SpiderMonkey的一个古老版本,它运行我的游戏有点慢。虽然它不是非常慢,但它足够慢,我决定做一些优化。

我知道一些基本的优化,比如使用局部变量而不是全局变量(这无论如何都是个好主意),使用前缀而不是后缀增量/减量,倒计时而不是循环中,但是什么是更好的JavaScript优化?

2 个答案:

答案 0 :(得分:2)

您是否尝试过Closure Compiler而不是弄乱源代码?它是一个从javascript到javascript的编译器,可以进行一些优化。主要是尺寸,但结果js也经常运行得更快。不知道优化是否与V8相关。

答案 1 :(得分:1)

我不知道你的代码是如何构造的,但是我们可以说它的部分内容存在于经常运行的函数或循环中:

  • 尽可能用if()替换? :

e.g。

if (expr) a = 1;
else a = 2;

变为

a = expr ? 1 : 2;
  • 如果可能,将一系列if()转换为switch()
  • 如果您使用substr()substring()slice()检查哪一个更快(在嵌入式浏览器上我 曾经注意到因素3)的差异。但要注意他们的参数!
  • 避免重新计算值或使用相同的参数再次调用相同的函数,即使它只是次要的
  • 如果一遍又一遍地访问数组的相同元素,请将其存储在本地变量
  • eval()非常缓慢(除了它是邪恶的事实)
  • 请记住,JavaScript引擎是单线程的。没有什么是平行的,甚至不是定时器或间隔。

如果代码难以阅读,请写评论。