2017-04-13 10 views
0

私はCPU 4つのコアを持っていると私は、このようないくつかのコードを持っている:私は1 .RunUpdate()のための一つのコアを使用することができますどのようにNodejsマルチCPUコアをマルチプロセスに使用するには?

for(var id in player_list){ 
    //check something and update postion 
} 

:各.RunUpdate()

setInterval(function() { 
    Player.RunUpdate(); 
    Animal.RunUpdate(); 
    Bullet.RunUpdate(); 
    GameItems.RunUpdate(); 
}, 1E3/FPS); 

は、このようなループのですか?出来ますか?例:

setInterval(function() { 
    core_1{ 
    Player.RunUpdate(); 
    } 
    core_2{ 
    Animal.RunUpdate(); 
    } 
    core_3{ 
    Bullet.RunUpdate(); 
    } 
    core_4{ 
    GameItems.RunUpdate(); 
}, 1E3/FPS); 

ありがとうございます!

+0

クラスタモジュール! – Sikorski

答えて

0

クラスタnpmを使用できるため、すべてのCPUコアが使用されます。クラスタを使用して

私はあなたが私はあなたがコードの下に実行をお勧めしますCPUコアを使用することを理解できるとして、それは共同作業員

参考コードclick here

0

を作成します。

「server.js」として保存し、「node server.js」のようなnodeコマンドを使用して実行します。

以下のコードでは、CPUが4コアの場合、このコードは4スレッドを作成します(CPUはこのコード行で4コアを持つためrequire('os').cpus().length)。

これにより、プログラムの実行が4倍高速になります。 これで、CPUのコアをどのように使用できるかが分かります。

var http = require('http'); 
var cluster = require('cluster'); 
var numCPU = require('os').cpus().length; 

if (cluster.isMaster) { 
    console.log(`Master ${process.pid} is running`); 

    for (let i = 0; i < numCPU; i++) { 
     console.log('' + i + '.' + cluster.fork()); 
    } 

    cluster.on('exit', (worker, code, signal) => { 
     console.log(`Worker ${worker.process.pid} died.`); 
    }); 

} else { 
    http.createServer((req, res) => { 
     res.writeHead(200, { 'content-type': 'plain/text' }); 
     res.end('Hello cluster'); 
    }).listen(8000,() => { 
     console.log('server is running on 8000'); 
    }); 
    console.log(`Worker ${process.pid} started`); 
関連する問題