2011-12-27 22 views
1

私は差があるかどうかを知りたいのですが、間パフォーマンスが賢明:同じポートでnode.jsでのこれら2つの実装の違いは何ですか?

1):

var http = require('http'); 

http.Server(function (req, res) { 
    if (req.url == 'foo') { foo(); return;} 
    if (req.url == 'bar') { bar(); } 
}).listen(123); 

2)は2つのポート

var http = require('http'); 

http.Server(function (req, res) { 
    foo(); 
}).listen(123); 

http.Server(function (req, res) { 
    bar(); 
}).listen(456); 
に分割さ

3)2つの別々のjsファイルで、2つの異なるノードcmdで起動します。

foo()およびbar()は、ファイルのアップロードなどの解決に時間がかかる機能です。

答えて

1

#1と#2のパフォーマンスは基本的に同じです。 #3のように2台のサーバーを稼働させ、マルチコアマシンを使用している場合は、必要なIOに応じて最大2倍の同時要求を実行できます。

+1

ワークロードがI/Oバウンドの場合、2つのCPUで速度を上げることはできません(そうでない場合、node.jsはまったく意味がありません)。もちろん、ワークロードがCPU重い場合、それは多くの助けになります。 – Thilo

+0

うん、そういうわけで、私は「必要なIOに応じて」と言った – nicolaskruchten

1

2つの異なるノードインスタンスは、2つのCPUスレッドを提供します(しかし、より多くのメモリを消費し、状態を簡単に共有できません)。それが私が見ることができる唯一の本当の違いです。

関連する問題