相关疑难解决方法(0)

为什么封装的Javascript函数有这么大的性能差异?

所以我有这个简单的代码:

function Run () {
  var n = 2*1e7;
  var inside = 0;
  while (n--) {
    if (Math.pow(Math.random(), 2) +
        Math.pow(Math.random(), 2) < 1)
      inside++;
  }

  return inside;
}

var start = Date.now();
Run();
console.log(Date.now() - start);
Run Code Online (Sandbox Code Playgroud)

它会输出大约335毫秒的时间.那很不错.但是,如果我像这样封装Run函数:

var d = Date.now();
(function Run () {
  var n = 2*1e7;
  var inside = 0;
  while (n--) {
    if (Math.pow(Math.random(), 2) +
        Math.pow(Math.random(), 2) < 1)
      inside++;
  }

  return inside;
})();
console.log(Date.now() - d);
Run Code Online (Sandbox Code Playgroud)

它将输出18319ms,这比以前的情况要糟糕得多.为什么是这样 ?

此外,如果重要,我在控制台的Chrome 26.0.1410.63上运行它.在node.js上,两个片段在控制台上都表现良好.

javascript compiler-construction optimization performance v8

21
推荐指数
1
解决办法
582
查看次数

使用nodejs可以采取哪些步骤来改善表达式中的jade模板渲染性能

背景

玉语法很棒但我想知道它是如何影响性能的.

所以我创建了一个单页应用程序,并使用apache bench来比较使用jade渲染页面与使用内存字符串的吞吐量.没有变数,所以这是纯粹的学术比较.

内存字符串使整个应用程序的本地速度提高了两倍以上,考虑到生产模式中的玉应该从内存缓存中渲染,这似乎很多.

我在生产模式下使用节点0.8和快速版本2.5.11,并且视图缓存选项显式设置为true.

阿帕奇板凳结果: https://dl.dropbox.com/u/3737990/jade/jade.png https://dl.dropbox.com/u/3737990/jade/memory.png

performance node.js express pug

14
推荐指数
3
解决办法
1万
查看次数