node.js中这两个实现有什么区别?

我想知道是否有差异, 性能明智之间:

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()是需要时间来parsing的函数,例如上传文件。

#1和#2在性能上基本相同。 如果像#3那样运行两台服务器,并且拥有一台多核计算机,那么根据所需和可用的IO,可以同时执行多达两倍的请求。

两个不同的节点实例给你两个CPU线程(但用尽更多的内存,不能轻松共享状态)。 这是我能看到的唯一真正的区别。