Node在这个基准测试中如何更快?

时间:2016-01-07 08:44:27

标签: javascript node.js rust

为了学习一些系统编程,我打算尝试写一个生锈的tokeniser。我立即发现迭代字符串的字符非常慢。我整理了一个简单的基准来表明我的意思。

setHasOptionsMenu(true); //Inside of onCreate in FRAGMENT: @Override public void onPrepareOptionsMenu(Menu menu) { menu.findItem(R.id.action_search).setVisible(false); } 是一个大约3000个字符的HTML文档

节点:



src/bench.html




生锈:

var input = require('fs').readFileSync('src/bench.html', 'utf8');
var len   = input.length;

for(var i = 0; i < 100; i+=1) run();

function run () {
    var index = 0;
    while (index < len) {
        var c = input.charAt(index);
        // noop
        index++;
    }
}

有人可以解释我在rust例子中做错了什么,使它比节点中的同样东西慢10倍?

所有代码都可以在https://github.com/shakyShane/rust-vs-node

找到

1 个答案:

答案 0 :(得分:4)

简单回答,在进行基准测试时,请不要使用target/debug/program,而应首​​先运行cargo build --release。这将为您提供target/release/program基准:)