NodeJS基准测试

时间:2013-01-30 14:18:59

标签: node.js apachebench

我已经做了基准测试,比较什么是更快的NodeJS或Apache + PHP?

当我测试'Hello world'时,Node节点更快,但是当我尝试使用http.get函数时,这是完全不同的故事。

为什么NodeJS变得这么慢?它在http.get中处理吗?或者什么?

测试环境

CPU             Intel(R) Core(TM) i5 CPU M 430 @ 2.27GHz
Memory          2927MiB
OS              Ubuntu 12.04 LTS
Test Platform   Apache Bench
NodeJS          v0.8.2
Apache          Apache/2.2.22
PHP             PHP 5.3.10-1ubuntu3.2 with Suhosin-Patch (cli)

1。 Hello world application:

NodeJS代码:

var http        = require('http');

http.createServer(function(req, res) {

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

    res.end('hello world');    

}).listen(8888);

PHP代码:

<?php

    echo "hello world"

?>

结果:

标题

ab -n 10000 -c 10主机名
10.000个请求,10个并发(以秒为单位)

NodeJS      1.337   1.361   1.313   1.312   1.329
Apache+PHP  3.923   3.910   3.917   3.926   3.921

ab -n 10000 -c 100主机名

10.000个请求,100个并发(以秒为单位的时间)

   
NodeJS      1.326   1.369   1.330   1.333   1.459
Apache+PHP  3.933   3.917   3.940   3.908   3.913

ab -n 100000 -c 300主机名

100.000个请求,300个并发(以秒为单位的时间)

NodeJS      13.560  13.647  13.784  13.807  14.082
Apache+PHP  44.061  41.516  41.523  41.466  41.465

2。拉动饲料应用程序:

NodeJS代码:

var http = require('http');


var options1 = {
          host: 'www.google.com',
          port: 80,
          path: '/',
          method: 'GET'
        };

http.createServer(function (req, res) {


    http.get(options1, function(response) {

        response.on('data', function (chunk) {

        });

        response.on('end', function (chunk) {
            res.writeHead(200, {'Content-Type': 'text/html'});
            res.end('ok');
        });

    });


}).listen(8888);

PHP代码:

<?php
    file_get_contents('http://www.google.com');

    echo 'ok';
?>

结果:

* ab -n 100 -c 10 hostname *

100个请求,10个并发(以秒为单位的时间)

NodeJS       8.034  8.492   8.619   7.464   7.950
Apache+PHP  18.648  16.699  19.428  17.903  18.297

* ab -n 1000 -c 10 hostname *

1000个请求,10个并发(以秒为单位的时间)

NodeJS       68.361 74.705  78.473  74.138  66.779
Apache+PHP  150.568 159.024 161.179 160.819 157.605

* ab -n 10000 -c 100 hostname *
10.000个请求,100个并发(以秒为单位的时间)

NodeJS     1666.988 739.370         
Apache+PHP  310.062 244.485         

* ab -n 10000 -c 50 hostname *
10.000个请求,50个并发(以秒为单位)

NodeJS      256.096 260.625         
Apache+PHP  149.422 154.422         

1 个答案:

答案 0 :(得分:2)

我已将代码更改为:

NodeJS代码:

var http = require('http');

http.globalAgent.maxSockets = 100000;    

var options1 = {
          host: 'www.google.com',
          port: 80,
          path: '/',
          method: 'GET',
          headers: {
              'Connection':'keep-alive'
          }
        };

http.createServer(function (req, res) {


    http.get(options1, function(response) {

        response.on('data', function (chunk) {

        });

        response.on('end', function (chunk) {
            res.writeHead(200, {'Content-Type': 'text/html'});
            res.end('ok');
        });

    });


}).listen(8888);

但是......它没有太大变化。它有点快,但与Apache + PHP相比,它非常慢。