Nodejs "Hello world" benchmark

新版本 nodejs 性能

node0.6.0 已经发布了,性能提高如何呢?
本文将记录 nodejs 历史更新中所有版本的hello world性能测试。

测试环境

$ uname -a
Linux xxx 2.6.18-164.el5 #1 SMP Tue Aug 18 15:51:48 EDT 2009 x86_64 x86_64 x86_64 GNU/Linux

$ cat /proc/cpuinfo
Intel(R) Xeon(R) CPU           E5410  @ 2.33GHz

测试 helloworld.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");
console.log('Server running at http://127.0.0.1:1337/');

http_load 压测命令

$ http_load -p 100 -s 10 http://127.0.0.1:1337/

测试结果: fetches/sec

  • v0.7.x
0.7.0
7676
  • v0.6.x
0.6.70.6.60.6.50.6.40.6.30.6.20.6.10.6.0
77918046806081118070813882408157
  • v0.5.x
0.5.100.5.90.5.80.5.70.5.6 0.5.50.5.40.5.30.5.20.5.10.5.0
82007259707170986996 8073-79318127--
  • v0.4.x
0.4.120.4.110.4.100.4.90.4.8 0.4.70.4.60.4.50.4.4 0.4.30.4.20.4.10.4.0
75107558760076066588 7916793179607981 7930796579757490
  • v0.3.x
0.3.80.3.70.3.60.3.50.3.4 0.3.30.3.20.3.10.3.0
78107871781588809000 899992009347-
  • v0.2.x
0.2.60.2.50.2.40.2.3 0.2.20.2.10.2.0
7525748174897500 741071367130
  • v0.1.x
0.1.1040.1.1030.1.1020.1.1010.1.100 0.1.990.1.980.1.970.1.960.1.95 0.1.940.1.930.1.920.1.910.1.90 0.1.0
76407538753776747040 72807211734072707210 70637931802085618146 -

v0.6.0与v0.4.12的性能对比

v0.6.0更新 说明文章中,列出的对比数据

v0.4.12 (linux) v0.6.0 (linux)

http_simple.js /bytes/1024  5461 r/s    6263 r/s
io.js read                  19.75 mB/s  26.63 mB/s
io.js write                 21.60 mB/s  17.40 mB/s
startup.js                  74.7 ms     49.6 ms

v0.4.12 (windows: Cygwin) v0.6.0 (windows)

http_simple.js /bytes/1024  3858 r/s    5823 r/s
io.js read                  12.41 mB/s  26.51 mB/s
io.js write                 12.61 mB/s  33.58 mB/s
startup.js                  152.81 ms   52.04 ms

v0.4 和 v0.6之间的更新说明请查看: API-changes-between-v0.4-and-v0.6

node0.7.0

7675.8 fetches/sec, 92109.6 bytes/sec
msecs/connect: 0.050985 mean, 1.047 max, 0.02 min
msecs/first-response: 12.9343 mean, 47.329 max, 2.926 min

node0.6.7

7790.79 fetches/sec, 93489.5 bytes/sec
msecs/connect: 0.052154 mean, 0.716 max, 0.023 min
msecs/first-response: 12.7397 mean, 41.609 max, 5.318 min

node0.6.6

8046.29 fetches/sec, 96555.5 bytes/sec
msecs/connect: 0.0517639 mean, 0.396 max, 0.023 min
msecs/first-response: 12.3359 mean, 36.495 max, 4.808 min

node0.6.5

8060.28 fetches/sec, 96723.4 bytes/sec
msecs/connect: 0.0518643 mean, 0.702 max, 0.021 min
msecs/first-response: 12.3109 mean, 35.02 max, 4.762 min

node0.6.4

8111 fetches/sec, 97332 bytes/sec
msecs/connect: 0.051521 mean, 1.847 max, 0.021 min
msecs/first-response: 12.2351 mean, 49.227 max, 1.847 min

node0.6.3

8070 fetches/sec, 96840 bytes/sec
msecs/connect: 0.0517654 mean, 0.502 max, 0.02 min
msecs/first-response: 12.2967 mean, 51.886 max, 5.151 min

node0.6.2

8137.79 fetches/sec, 97653.5 bytes/sec
msecs/connect: 0.0515829 mean, 0.642 max, 0.021 min
msecs/first-response: 12.1961 mean, 42.128 max, 3.111 min

node0.6.1

8239.6 fetches/sec, 98875.2 bytes/sec
msecs/connect: 0.0530447 mean, 0.439 max, 0.022 min
msecs/first-response: 12.0422 mean, 32.93 max, 1.846 min

node0.6.0

8157.38 fetches/sec, 97888.5 bytes/sec
msecs/connect: 0.0512865 mean, 0.741 max, 0.022 min
msecs/first-response: 12.1661 mean, 46.023 max, 4.57 min

node0.5.10

8200 fetches/sec, 98400 bytes/sec
msecs/connect: 0.0517871 mean, 0.508 max, 0.024 min
msecs/first-response: 12.0963 mean, 34.816 max, 4.831 min

node0.5.9

7258.88 fetches/sec, 87106.6 bytes/sec
msecs/connect: 0.0521661 mean, 0.667 max, 0.022 min
msecs/first-response: 13.6817 mean, 49.23 max, 3.31 min

node0.5.8

7070.8 fetches/sec, 84849.6 bytes/sec
msecs/connect: 0.0523142 mean, 0.517 max, 0.022 min
msecs/first-response: 14.0466 mean, 39.545 max, 6.215 min

node0.5.7

7097.59 fetches/sec, 85171.1 bytes/sec
msecs/connect: 0.0526457 mean, 0.586 max, 0.024 min
msecs/first-response: 13.9935 mean, 44.333 max, 5.604 min

node0.5.6

6995.6 fetches/sec, 83947.2 bytes/sec
msecs/connect: 0.0525126 mean, 0.413 max, 0.022 min
msecs/first-response: 14.1971 mean, 37.55 max, 6.123 min

node0.5.5

8073.3 fetches/sec, 96879.6 bytes/sec
msecs/connect: 0.0509257 mean, 0.41 max, 0.02 min
msecs/first-response: 12.2924 mean, 44.222 max, 4.323 min

node0.5.4

出现编译错误:

/usr/bin/ld: skipping incompatible /usr/lib/libc.a when searching for -lc
/home/admin/pkgs/node-v0.5.4/build/default/deps/uv/uv.a(eio.o): In function `eio__sync_file_range':
/home/admin/pkgs/node-v0.5.4/build/default/deps/uv/src/eio/eio.c:1083: undefined reference to `sync_file_range'
collect2: ld returned 1 exit status
Waf: Leaving directory `/home/admin/pkgs/node-v0.5.4/build'
Build failed:  -> task failed (err #1): 
    {task: cxx_link node_main_5.o,node_5.o,node_buffer_5.o,node_javascript_5.o,
    node_extensions_5.o,node_http_parser_5.o,node_constants_5.o,node_file_5.o,
    node_script_5.o,node_os_5.o,node_dtrace_5.o,node_string_5.o,timer_wrap_5.o,
    handle_wrap_5.o,stream_wrap_5.o,tcp_wrap_5.o,pipe_wrap_5.o,cares_wrap_5.o,
    stdio_wrap_5.o,process_wrap_5.o,node_cares_5.o,node_net_5.o,
    node_signal_watcher_5.o,node_stat_watcher_5.o,node_io_watcher_5.o,
    node_stdio_5.o,node_child_process_5.o,node_timer_5.o,platform_linux_5.o,
    node_crypto_5.o,http_parser_3.o -> node}
make: *** [program] Error 1

node0.5.3

7931.39 fetches/sec, 95176.7 bytes/sec
msecs/connect: 0.0520728 mean, 0.701 max, 0.024 min
msecs/first-response: 12.5109 mean, 45.553 max, 5.302 min

node0.5.2

8126.8 fetches/sec, 97521.6 bytes/sec
msecs/connect: 0.0513291 mean, 2.476 max, 0.021 min
msecs/first-response: 12.2076 mean, 38.541 max, 1.328 min

node0.5.1

编译不通过,暂缺

node0.5.0

编译不通过,暂缺

node0.4.12

7510 fetches/sec, 90120 bytes/sec
msecs/connect: 0.0540341 mean, 0.631 max, 0.023 min
msecs/first-response: 13.2113 mean, 47.364 max, 3.807 min

node0.4.11

7557.79 fetches/sec, 90693.5 bytes/sec
msecs/connect: 0.0553164 mean, 0.467 max, 0.025 min
msecs/first-response: 13.13 mean, 44.789 max, 2.899 min

node0.4.10

7600 fetches/sec, 91200 bytes/sec
msecs/connect: 0.0534043 mean, 0.367 max, 0.022 min
msecs/first-response: 13.0584 mean, 53.123 max, 4.559 min

node0.4.9

7605.7 fetches/sec, 91268.4 bytes/sec
msecs/connect: 0.0539834 mean, 0.379 max, 0.02 min
msecs/first-response: 13.0469 mean, 46.833 max, 5.299 min

node0.4.8

6587.9 fetches/sec, 79054.8 bytes/sec
msecs/connect: 0.0512022 mean, 0.499 max, 0.021 min
msecs/first-response: 15.0846 mean, 49.04 max, 4.448 min

node0.4.7

7916.1 fetches/sec, 94993.2 bytes/sec
msecs/connect: 0.0516686 mean, 1.629 max, 0.021 min
msecs/first-response: 12.5375 mean, 43.116 max, 5.695 min

node0.4.6

7930.88 fetches/sec, 95170.6 bytes/sec
msecs/connect: 0.0517224 mean, 0.704 max, 0.022 min
msecs/first-response: 12.5125 mean, 42.465 max, 5.519 min

node0.4.5

7960 fetches/sec, 95520 bytes/sec
msecs/connect: 0.0522368 mean, 0.674 max, 0.021 min
msecs/first-response: 12.4676 mean, 43.185 max, 5.598 min

node0.4.4

7981.4 fetches/sec, 95776.8 bytes/sec
msecs/connect: 0.0511981 mean, 0.729 max, 0.02 min
msecs/first-response: 12.4255 mean, 51.829 max, 5.506 min

node0.4.3

7929.9 fetches/sec, 95158.8 bytes/sec
msecs/connect: 0.0510949 mean, 0.833 max, 0.023 min
msecs/first-response: 12.5189 mean, 51.677 max, 5.02 min

node0.4.2

7965.19 fetches/sec, 95582.3 bytes/sec
msecs/connect: 0.0526699 mean, 0.864 max, 0.023 min
msecs/first-response: 12.4563 mean, 42.695 max, 3.897 min

node0.4.1

7975.19 fetches/sec, 95702.3 bytes/sec
msecs/connect: 0.0527306 mean, 1.418 max, 0.021 min
msecs/first-response: 12.4361 mean, 47.871 max, 0.767 min

node0.4.0

7490 fetches/sec, 89880 bytes/sec
msecs/connect: 0.051049 mean, 0.691 max, 0.021 min
msecs/first-response: 13.255 mean, 51.421 max, 5.735 min

node0.3.8

7810 fetches/sec, 93720 bytes/sec
msecs/connect: 0.0514884 mean, 0.581 max, 0.02 min
msecs/first-response: 12.7136 mean, 43.613 max, 5.42 min

node0.3.7

7870.99 fetches/sec, 94451.9 bytes/sec
msecs/connect: 0.0527374 mean, 0.453 max, 0.022 min
msecs/first-response: 12.6068 mean, 37.022 max, 5.835 min

node0.3.6

7814.89 fetches/sec, 93778.6 bytes/sec
msecs/connect: 0.0522743 mean, 0.719 max, 0.023 min
msecs/first-response: 12.6983 mean, 37.436 max, 5.748 min

node0.3.5

8879.97 fetches/sec, 106560 bytes/sec
msecs/connect: 0.0571404 mean, 0.753 max, 0.022 min
msecs/first-response: 11.1496 mean, 46.028 max, 4.842 min

node0.3.4

9000 fetches/sec, 108000 bytes/sec
msecs/connect: 0.0566353 mean, 0.633 max, 0.023 min
msecs/first-response: 11.0017 mean, 46.633 max, 5.126 min

node0.3.3

8999.29 fetches/sec, 107992 bytes/sec
msecs/connect: 0.0569282 mean, 0.583 max, 0.022 min
msecs/first-response: 11.0035 mean, 43.218 max, 5.112 min

node0.3.2

9200 fetches/sec, 110400 bytes/sec
msecs/connect: 0.0582272 mean, 0.709 max, 0.023 min
msecs/first-response: 10.7557 mean, 32.685 max, 5.059 min

node0.3.1

9347.3 fetches/sec, 112168 bytes/sec
msecs/connect: 0.0564677 mean, 0.974 max, 0.022 min
msecs/first-response: 10.592 mean, 38.921 max, 4.77 min

node0.3.0

编译不通过

node0.2.6

7524.9 fetches/sec, 90298.7 bytes/sec
msecs/connect: 0.0581787 mean, 0.649 max, 0.02 min
msecs/first-response: 13.1609 mean, 105.413 max, 5.191 min

node0.2.5

7480.6 fetches/sec, 89767.1 bytes/sec
msecs/connect: 0.0589546 mean, 0.693 max, 0.023 min
msecs/first-response: 13.2442 mean, 94.122 max, 5.744 min

node0.2.4

7488.59 fetches/sec, 89863.1 bytes/sec
msecs/connect: 0.0595586 mean, 0.428 max, 0.023 min
msecs/first-response: 13.2342 mean, 95.229 max, 5.88 min

node0.2.3

7500 fetches/sec, 89999.9 bytes/sec
msecs/connect: 0.0591254 mean, 0.57 max, 0.024 min
msecs/first-response: 13.1974 mean, 94.721 max, 5.728 min

node0.2.2

7409.99 fetches/sec, 88919.9 bytes/sec
msecs/connect: 0.0597531 mean, 0.558 max, 0.021 min
msecs/first-response: 13.3618 mean, 102.09 max, 5.846 min

node0.2.1

7135.9 fetches/sec, 85630.8 bytes/sec
msecs/connect: 0.0565066 mean, 0.59 max, 0.023 min
msecs/first-response: 13.8999 mean, 100.855 max, 5.703 min

node0.2.0

7129.99 fetches/sec, 85559.9 bytes/sec
msecs/connect: 0.0565618 mean, 0.356 max, 0.02 min
msecs/first-response: 13.915 mean, 100.048 max, 4.344 min

node0.1.104

7640 fetches/sec, 91679.9 bytes/sec
msecs/connect: 0.0577092 mean, 0.564 max, 0.024 min
msecs/first-response: 12.9695 mean, 90.161 max, 3.711 min

node0.1.103

7538.38 fetches/sec, 90460.6 bytes/sec
msecs/connect: 0.0577052 mean, 1.091 max, 0.021 min
msecs/first-response: 13.1506 mean, 92.522 max, 5.378 min

node0.1.102

7537.49 fetches/sec, 90449.9 bytes/sec
msecs/connect: 0.0583015 mean, 0.396 max, 0.024 min
msecs/first-response: 13.1514 mean, 103.188 max, 5.577 min

node0.1.101

7673.9 fetches/sec, 92086.8 bytes/sec
msecs/connect: 0.0588679 mean, 0.767 max, 0.021 min
msecs/first-response: 12.9082 mean, 99.924 max, 4.776 min

node0.1.100

7040 fetches/sec, 84480 bytes/sec
msecs/connect: 0.0557378 mean, 0.592 max, 0.022 min
msecs/first-response: 14.0982 mean, 107.368 max, 6.009 min

node0.1.99

7279.99 fetches/sec, 87359.9 bytes/sec
msecs/connect: 0.0555776 mean, 0.569 max, 0.022 min
msecs/first-response: 13.6292 mean, 93.241 max, 5.983 min

node0.1.98

7210.6 fetches/sec, 86527.2 bytes/sec
msecs/connect: 0.0552844 mean, 0.379 max, 0.02 min
msecs/first-response: 13.7576 mean, 94.502 max, 5.685 min

node0.1.97

7339.55 fetches/sec, 88074.6 bytes/sec
msecs/connect: 0.057371 mean, 0.802 max, 0.022 min
msecs/first-response: 13.5052 mean, 89.268 max, 5.326 min

node0.1.96

7269.6 fetches/sec, 87235.2 bytes/sec
msecs/connect: 0.0566584 mean, 0.573 max, 0.021 min
msecs/first-response: 13.6483 mean, 60.543 max, 4.296 min

node0.1.95

7209.65 fetches/sec, 86515.9 bytes/sec
msecs/connect: 0.0565087 mean, 0.529 max, 0.024 min
msecs/first-response: 13.7617 mean, 60.438 max, 4.418 min

node0.1.94

7063.39 fetches/sec, 84760.6 bytes/sec
msecs/connect: 0.0547156 mean, 0.66 max, 0.022 min
msecs/first-response: 14.0522 mean, 130.751 max, 4.987 min

node0.1.93

7930.6 fetches/sec, 95167.2 bytes/sec
msecs/connect: 0.0587932 mean, 0.61 max, 0.023 min
msecs/first-response: 12.4891 mean, 77.833 max, 3.689 min

node0.1.92

8019.99 fetches/sec, 96239.9 bytes/sec
msecs/connect: 0.058158 mean, 0.718 max, 0.021 min
msecs/first-response: 12.354 mean, 79.033 max, 3.423 min

node0.1.91

8560.98 fetches/sec, 102732 bytes/sec
msecs/connect: 0.0596777 mean, 0.471 max, 0.022 min
msecs/first-response: 11.522 mean, 71.727 max, 3.235 min

node0.1.90

8146.18 fetches/sec, 97754.2 bytes/sec
msecs/connect: 0.0595273 mean, 0.826 max, 0.021 min
msecs/first-response: 12.1531 mean, 223.064 max, 3.189 min

node0.1.0

helloworld.js跑不起来了,出现一下异常:

hello.js:8: TypeError: Object # has no method 'createServer'
http.createServer(function (req, res) {
     ^

有爱

^_^ 希望本文对你有用

posted @ 2011-11-17 00:08  MK2  阅读(1616)  评论(0编辑  收藏  举报