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线程(但用尽更多的内存,不能轻松共享状态)。 这是我能看到的唯一真正的区别。