NodeJS与PHP+Apache的性能测试结果很奇怪

NodeJS与PHP+Apache的性能测试结果很奇怪,php,node.js,performance,apache,Php,Node.js,Performance,Apache,我正在为我的API选择最好的技术,因此我创建了有史以来最简单的脚本: PHP: 节点: Apache有一个非常好的默认配置,没有任何花哨的优化 PHP+Apache和NodeJS的响应时间都在1.5s-2.3s左右,这真的很奇怪。那么我是不是对node做了一些错误的事情,或者只是这个特定的功能没有PHP+Apache的优势 API应该接收最后通牒调用,在一端将其插入数据库,在另一端获取这些结果。该api每天应该接收约100万次调用,并且应该是可扩展的,因此我正在尝试找出最佳方法,性能测试结果让我

我正在为我的API选择最好的技术,因此我创建了有史以来最简单的脚本:

PHP:

节点:

Apache有一个非常好的默认配置,没有任何花哨的优化

PHP+Apache和NodeJS的响应时间都在1.5s-2.3s左右,这真的很奇怪。那么我是不是对node做了一些错误的事情,或者只是这个特定的功能没有PHP+Apache的优势


API应该接收最后通牒调用,在一端将其插入数据库,在另一端获取这些结果。该api每天应该接收约100万次调用,并且应该是可扩展的,因此我正在尝试找出最佳方法,性能测试结果让我有点困惑。

请注意,性能基准测试结果取决于您运行的用于基准测试的程序/应用程序的类型

通常有两种类型的性能度量。一个是服务器端性能,通过计算服务器Linux盒中相应技术的CPU和内存使用量来衡量;另一个是客户端性能,通过使用Apache Bench等工具的响应时间来衡量

服务器端CPU和内存使用基准:Debian.org在Linux Box Ubuntu中对不同的编程语言/框架进行基准测试。它使用一组不同类型的程序来衡量性能。它可以成为理想的信息来源。但是,它只测量服务器端CPU和内存使用情况。您可以在以下链接中找到Node与其他语言(如PHP)之间的基准测试结果:

根据他们的结果,Node在CPU使用率方面明显优于PHP

客户端响应时间基准:Hostingadvice比较了客户端节点与PHP的性能。他们根据客户端响应时间来衡量性能。您可以在以下链接中找到结果:


根据他们的结果,Node在客户端响应时间方面的性能明显优于PHP。

在没有json_encode$r和response.endJSON.stringifyret的情况下尝试Node.js和PHP代码;你会看到差异。为什么你会期望在这样一个基本操作上有差异呢?node.js的真正功能不是一个基本操作,而是一个事件循环,试着在这个serwers上做apache基准测试,你会得到一个答案;是的,我可以看到区别:当我迭代10M时,PHP不能处理它,Node处理得很好。愚蠢的我^ ^ ^或者,不要删除模拟传输大文件的json编码,而是使用apachebench测试它,而不仅仅是一个请求。您会发现,即使node和php都以大致相同的时间处理单个请求,node每秒也能够处理更多这样的请求。
<?php

$r = [];

for($i=0;$i<=1000000;$i++) {
    $r[] = $i;
}

echo json_encode($r);
var http = require("http");

http.createServer(function(request, response) {
    var i, ret = [];

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

    for(i=0;i<=1000000;i++) {
        ret.push(i);
    }

    response.end(JSON.stringify(ret));
}).listen(8080);