bobning 发表于 2013-1-15 02:16:35

node.js vs tornado

 
早就听说V8的威力了,由于一直在用tornado做项目,今天特意拿tornado和node.js来做个简单的对比压力测试。结果是node.js胜出。
 
硬件: 普通pc机 双核  内存2g
OS: ubuntu 10.04
 
先说一下node.js的安装:
wget -c http://nodejs.org/dist/node-v0.3.1.tar.gz
# ./configure
# make
# make install
 
如果需要ssl, 则先apt-get install libssl-dev
 
启动基于node.js的web server
脚本web.js如下:
 
var http = require('http');http.createServer(function (req, res) {    res.writeHead(200, {'Content-Type': 'text/plain'});    res.end('Hello bobning\n');}).listen(8124, "127.0.0.1");console.log('Server running at http://127.0.0.1:8124/'); # node web.js
Server running at http://127.0.0.1:8124/
 
启动基于tornado的web server
tornado就更简单了,在demos下有个helloworld项目,默认端口为8888
# ./helloworld.py --logging=error   #注意把log关闭,否则影响测试结果
 
 
测试开始:
# ab -c10 -n1000 http://127.0.0.1:8124/   #node.js
Concurrency Level:      10
Time taken for tests:   0.208 seconds
Complete requests:      1000
Failed requests:        0
Write errors:           0
Total transferred:      76000 bytes
HTML transferred:       12000 bytes
Requests per second:    4796.92 [#/sec] (mean)
    Time per request:       2.085 (mean)
    Time per request:       0.208 (mean, across all concurrent requests)
    Transfer rate:          356.02 received
 
# ab -c10 -n1000 http://127.0.0.1:8888/   #tornado
Concurrency Level:      10
Time taken for tests:   0.509 seconds
Complete requests:      1000
Failed requests:        0
Write errors:           0
Total transferred:      168000 bytes
HTML transferred:       12000 bytes
Requests per second:    1963.95 [#/sec] (mean)
    Time per request:       5.092 (mean)
    Time per request:       0.509 (mean, across all concurrent requests)
    Transfer rate:          322.21 received
 
猛一点:
# ab -c1000 -n20000 http://127.0.0.1:8124/  #node.js
Concurrency Level:      1000
Time taken for tests:   2.629 seconds
Complete requests:      20000
Failed requests:        0
Write errors:           0
Total transferred:      1520000 bytes
HTML transferred:       240000 bytes
Requests per second:    7606.23 [#/sec] (mean)
    Time per request:       131.471 (mean)
    Time per request:       0.131 (mean, across all concurrent requests)
    Transfer rate:          564.52 received
 
 
# ab -c1000 -n20000 http://127.0.0.1:8888/  #tornado
Concurrency Level:      1000
Time taken for tests:   10.605 seconds
Complete requests:      20000
Failed requests:        0
Write errors:           0
Total transferred:      3360000 bytes
HTML transferred:       240000 bytes
Requests per second:    1885.98 [#/sec] (mean)
    Time per request:       530.228 (mean)
    Time per request:       0.530 (mean, across all concurrent requests)
    Transfer rate:          309.42 received
 
 
 
页: [1]
查看完整版本: node.js vs tornado