Nodejs 和PHP 性能測試結果

nodejs 和 php 實現的是一個像他的功能,從MySQL裏讀出讀出五行數據。 php

測試命令: node

ab.exe -n10000 -c100 http://127.0.0.1:1337/ > node.log

ab.exe -n10000 -c100 http://127.0.0.1/abTest.php > php.log

Nodejs 的測試結果:
mysql

PHP的測試結果:
sql

NodeJs的代碼: shell

var mysql = require('mysql'),
	http = require('http');

var connection = mysql.createConnection({
		host : 'localhost',
		user : 'root',
		password : '',
		database : 'collection',
		charset : mysql.UTF8_UNICODE_CI,
	});
connection.connect();

http.createServer(function (req, res) {
	res.writeHead(200, {
		'Content-Type' : 'text/plain',
		'Hello':'world',
	});
	connection.query('SELECT `category`,`add_intro`, `source` FROM `tu_duowan_com` LIMIT 5;', function (err, rows, fields) {
		if (err) throw err;
		res.write('MySQL Result:' + JSON.stringify(rows));
		res.end();
	});
	
}).listen(1337, '127.0.0.1');
process.on('exit', function(){
	connection.end();
});
console.log('Server running at http://127.0.0.1:1337/');

PHP的測試代碼: json

$mysqli = new mysqli('localhost', 'root', '', 'collection');
	if ($mysqli->connect_error) {
		throw new Exception(sprintf('Connect host(localhost) Error: %s.', $mysqli->connect_error));
	}
	if (!$mysqli->set_charset('utf8')) {
	    throw new Exception(sprintf("Error loading character set utf8: %s.", $mysqli->error));
	}
	
	$result = $mysqli->query('SELECT `category`,`add_intro`, `source` FROM `tu_duowan_com` LIMIT 5;');
	if(false === $result){
		throw new Exception($mysqli->error);
	}
	
	$rtn = $result->fetch_all(MYSQLI_ASSOC);
	$result->free();
	echo json_encode($rtn);
	$mysqli->close();
相關文章
相關標籤/搜索