Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/246.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么在这个例子中NodeJS不是那么快?_Php_Node.js_Apache - Fatal编程技术网

Php 为什么在这个例子中NodeJS不是那么快?

Php 为什么在这个例子中NodeJS不是那么快?,php,node.js,apache,Php,Node.js,Apache,我听说过很多关于NodeJS有多快的事。但我的简单测试用例表明,使用PHP的Apache要快得多。代码如下所示: PHP代码 NodeJS 该表包含1000行,十个测试表明,即使没有任何加速器,PHP的速度也至少快3倍。为什么呢?这是否意味着NodeJS仅在某些特殊情况下优于PHP?1您在JS中包含了初始连接的时间,但在PHP中没有。2这里的大部分时间都花在MySQL服务器上,所以这并不是一个很好的比较基础。这是否意味着nodejs只在某些特殊情况下胜过PHP?不,这意味着PHP至少在一种特殊情

我听说过很多关于NodeJS有多快的事。但我的简单测试用例表明,使用PHP的Apache要快得多。代码如下所示:

PHP代码

NodeJS


该表包含1000行,十个测试表明,即使没有任何加速器,PHP的速度也至少快3倍。为什么呢?这是否意味着NodeJS仅在某些特殊情况下优于PHP?

1您在JS中包含了初始连接的时间,但在PHP中没有。2这里的大部分时间都花在MySQL服务器上,所以这并不是一个很好的比较基础。这是否意味着nodejs只在某些特殊情况下胜过PHP?不,这意味着PHP至少在一种特殊情况下胜过Node,而不是其他情况。我不知道哪一个更快,但根据一次比较,你无法得出任何结论。在node中,删除connection.connect,它不是必需的,或者至少应该用参数调用,将getTime调用移动到createConnection之后,您将得到一个更公平的测试。这可能可以通过计时器的分辨率来解释。要创建有效的测试,您必须至少循环代码几百次。任何发生得如此之快的事情都无法可靠地测量。@Jacobian您可以使用process.hrtime以更高的分辨率测量时间,如果您愿意的话。
require_once("mysqlconnect.php");
$start = round(microtime(true) * 1000);
$r = mysql_query("SELECT field1 FROM mytable");
$arr = array();
while($s = mysql_fetch_array($r)){
    $arr[] = $s;
}
$obj = json_encode($arr);
$end = round(microtime(true) * 1000);
echo $end-$start;
var mysql = require('mysql'),
start = new Date().getTime(),
connection = mysql.createConnection({
 host     : 'localhost',
 user     : 'root',
 password : 'root',
 database : 'testdb'
}),
json = '',
query = 'SELECT field1 FROM mytable';
connection.connect();
connection.query(query, function(err, results, fields) {
    json = JSON.stringify(results);
    var elapsed = new Date().getTime() - start;
    console.log(elapsed);
    connection.end();
});