Я сопоставил время выполнения PHP VS время выполнения HHVM для некоторых кодов, взятых из http://phpbench.com/ . За исключением некоторой функции, HHVM работает быстрее, чем PHP. Вот некоторые коды, в которых время выполнения php меньше времени выполнения HHVM.
Может кто-нибудь сказать, почему это происходит для некоторых кодов?
1 - Use Single dimension array
<?php
function Test4_1() {
global $x;
$t = microtime(true);
$size = count($x);
$i = 0;
while($i < 1000) {
$alias = $aSingleDimArray[$i];
++$i;
}
return (microtime(true) - $t);
}
$returnData = Test4_1();
$microtime = ($returnData * 1000000);
echo "execution time is ".$microtime." micro seconds.";
?>
2 - Use of multi dimension array<?php
function Test4_3() {
global $x;
$t = microtime(true);
while($i < 1000) {
$alias = $aMultiDimArray[$i]["aaaaa"]["aaaaaaaaaa"];
++$i;
}
return (microtime(true) - $t);
}
$returnData = Test4_3();
$microtime = ($returnData * 1000000);
echo "execution time is ".$microtime." micro seconds.";
3 - Use of very multi dimension array
<?php
function Test4_5() {
global $x;
$t = microtime(true);
while($i < 1000) {
$alias = $veryMultiDimArray[$i]["a"]["aa"]["aaa"]["aaaa"]["aaaaa"];
++$i;
}
return (microtime(true) - $t);
}
$returnData = Test4_5();
$microtime = ($returnData * 1000000);
echo "execution time is ".$microtime." micro seconds.";
?>
For Some code i found HHVM execution time is 16.736 microseconds while PHP execution time is (unexpected) 41515.111 microseconds.
Вот код
<?php
global $x;
$i = 0;
$tmp = '';
while($i < 10000) {
$tmp .= 'a';
++$i;
}
$x = array_fill(5, 1000, $tmp);
unset($i, $tmp);
function Test3_4() {
global $x;
$t = microtime(true);
for ($i=0; $i return (microtime(true) - $t);
}
function Test3_End() {
global $x;
unset($x);
}
Test3_End();
$returnData = Test3_4();
$microtime = ($returnData * 1000000);
echo "execution time is ".$microtime." micro seconds.";
?>
Задача ещё не решена.
Других решений пока нет …