Php 为什么在这个例子中NodeJS不是那么快?
我听说过很多关于NodeJS有多快的事。但我的简单测试用例表明,使用PHP的Apache要快得多。代码如下所示: PHP代码 NodeJSPhp 为什么在这个例子中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至少在一种特殊情
该表包含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();
});