2014-02-27 62 views
0

我使用我的Windows 7的Node.js和有banch異步函數的棧和運行它CPU在node.js中的Windows 7

stack = { 
nextStep: function() { 
    if (this.run) return; 
    this.run = true; 

    /* Do some stuff, example for (var i = 0; i < 10000; i++) console.log(i); */ 

    this.run = false; 
} 
}; 

setInterval(stack.nextStep.bind(stack), 5); 

我有一噸的任務,它必須被執行。

它們運行速度很慢,但CPU使用率超過2-3%!我不知道爲什麼它的價值如此之低,我認爲,它必須超過90%的CPU使用率。我做錯了什麼?

我已經嘗試減少setInterval計時器到0,但它不工作。 Windows任務管理器中的CPU使用率一直在2-3%以上(除了有些時候,當nodejs V8獲得8-9%,但立即通過時)。

所以,問題是 - 我如何強制node.js使用最大的CPU來更快地執行任務?或者我錯了。

回答

0

基本上node.js是每個進程的單線程模型。 即使你有多核心機器,Node.JS也不能使用所有的CPU。 要使用整個CPU,你需要使用節點集羣。它調用多個進程並且進程將使用其他CPU。因爲這個原因,vert.x(simillar to node.js)比node.js更快。