没有银弹 NODE.JS性能未必就很高

14-03-24 px96004
node.js很火,性能如何如何。

确实,在使用简单的例子:

var http =require('http');

http.createServer(function(req,res) {

res.writeHead(200, { 'Content-Type': 'text/plain' });

res.end('Hello World\n');

}).listen(1337,"127.0.0.1");

返回个Hello World.

然后我用AB测试一下。我累了个去的。

ab -n 1000 -c 100 http://localhost:1337/

...

Requests per second: 4923.08 [#/sec] (mean)

Time per request: 20.313 [ms] (mean)

Time per request: 0.203 [ms] (mean, across all concurrent requests)

Transfer rate: 543.27 [Kbytes/sec] received

OH MYGOD!!!! ,rps将近 5000。这还是只用到了一个核心的单线程例子。

八核心岂不是能上4W?

一台小电脑足够支撑一个大型医院的了吧(不考虑数据库和其他的)。

但是真正在生产环境下呢?比如一个使用最简单的 Express框架,最简单的MVC模式

====routes/index.js=======

exports.index = function(req, res){

res.render('index', { title: 'Express' });

};

====view/index.jade=======

extends layout

block content

h1 #{title}

p Welcome to [#{title}]

结果呢????

ab -n 1000 -c 100 http://localhost:3000/

Requests per second: 149.53 [#/sec] (mean)

rps 也就 150了。显然照JSP比差得很多。。。

banq
2014-03-25 06:32
你这个测试结果和老外的测试不一样,中文翻译见:http://www.jdon.com/46133,英文原文:http://joeywhelan.blogspot.com/2014/01/node-vs-java-web-service-performance.html,他使用了NodeJS +Express

px96004
2014-03-25 09:49
也许是日志的问题?

也许是 JADE模板性能问题.

但我基本上用的就是官方例子哦。。。

不知别人的也是不是这样哦

brighthas
2014-03-25 23:12
我觉得任何技术都没有银弹的,同时既然没有银弹,就不能找技术本身有哪些不足,而是要想如何发挥其长处。

Node.js 很火是有其原因的,找到火的原因,比找到“骨头”更有意义。

猜你喜欢