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

时间:2011-12-27 07:40:37

标签: 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()是可能需要时间来解决的功能,例如上传文件。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

#1和#2在性能方面基本相同。如果您运行两个服务器(如#3)并且您拥有多核计算机,则可以执行最多两倍的同时请求,具体取决于所需的IO和可用。