JavaScript引擎性能基准

Cyk*_*ker 0 javascript v8 rhino spidermonkey

我用以下简单的程序简要测试了这三个引擎(rhino/spidermonkey/v8):

function p(n) {
    for (var i = 2;i * i <= n;i++) {
        if (n % i == 0) {
            return false;
        }
    }
    return true;
}

var sum = 0;
for (var k = 2;k < 10000000;k++) {
    if (p(k)) {
        sum++;
    }
}
print(sum);
Run Code Online (Sandbox Code Playgroud)

并获得以下结果:

$ time rhino -O 9 sample.js
664579

real    0m40.495s
user    0m40.793s
sys     0m0.180s

$ time js sample.js
664579

real    0m9.465s
user    0m9.477s
sys     0m0.000s

$ time d8 sample.js
664579

real    0m8.941s
user    0m8.943s
sys     0m0.000s
Run Code Online (Sandbox Code Playgroud)

虽然spidermonkey和v8的速度通常相当,但即使最高级别的优化,rhino也需要更长的时间.这里有什么不对吗?

我调查了标准的JavaScript基准测试,但大多数都在浏览器中运行测试.任何人都可以推荐一个命令行版本来测试核心引擎吗?

Vla*_*hin 5

虽然spidermonkey和v8的速度通常相当,但即使最高级别的优化,rhino也需要更长的时间.这里有什么不对吗?

这里没有错.犀牛只是慢,就是这样.

我调查了标准的JavaScript基准测试,但大多数都在浏览器中运行测试.任何人都可以推荐一个命令行版本来测试核心引擎吗?

Sunspider,Kraken和Octane的源代码(例如v8测试套件;它包含在V8引擎的源代码中)可以使用基准测试,因此您可以在命令行中轻松执行独立测试.