我试图做一些 php 5.5 与 HHVM 的基准测试,并且使用 hhvm 获得了一些相当不错的结果。然而,在 HHVM 上冒泡排序的性能非常糟糕。我猜它与数组有关。在下面的示例中,当 q=1000 时,hhvm 几乎比 php 5.5 差 5 倍。因为在这两种情况下,因为测试运行了很多次,所以我不认为热身时间应该是一个问题。在这两种情况下,它们都是 fastcgi 模式。在 q=1000 的情况下,php5.5 需要大约 200 毫秒来提供页面,而 hhvm 大约需要 1000 毫秒。我尝试使用 splfixedclass,但它在 hhvm 上的性能也很差。是否有一个特殊的类或一些特殊的选项可以提高 hhvm 中的数组性能?
我解释了我在这里做了什么:http: //letschat.info/php-5-5-vs-hhvm-vs-node-js-benchmark-part-2/
$starttime = microtime(true);
if($_GET['q']!=""){
$count = $_GET['q'];
} else {
$count = 100;
}
function getRandom(){
$random = array();
global $count;
for($i=0;$i<$count;$i++){
$random[]=rand(1,100);
}
return $random;
}
$array = getRandom();
for($i=0;$i<10;$i++) {
#$i=0;
//while ($i<$a) {
$a = count($array);
$b=$a-1;
for($j=0; $j < $a; $j++){
for ($k=0;$k<$b;$k++) {
if ($array[$k+1] < $array[$k]) {
$t = $array[$k];
$array[$k] = $array[$k+1];
$array[$k+1] = $t;
}
}
//++$i;
}
$array[$count/2]=rand(1,100);
}
print_r($array);
echo microtime(true) - $starttime;