Я изменил порядок тестирования и получил другой результат.Я попытался отключить кэш кода операции, добавил unset, но все равно получил другой результат.Почему?
http://snipplr.com/view/759/
$time_start = microtime(true);
$myArray = array();
for ( $i = 0; $i < 100000; ++$i )
{
$myArray[] = $i;
$myArray[] = 'test a string';
}
$time_end = microtime(true);
printf("Took %f seconds for array[]\n", $time_end - $time_start);
$time_start = microtime(true);
$myArray = array();
for ( $i = 0; $i < 100000; ++$i )
{
array_push($myArray, $i);
array_push($myArray, 'test a string');
}
$time_end = microtime(true);
printf("Took %f seconds for array_push\n", $time_end - $time_start);
Потребовалось 0,145872 секунды для массива [] Потребовалось 0,154502 секунды для array_push
$time_start = microtime(true);
$myArray = array();
for ( $i = 0; $i < 100000; ++$i )
{
array_push($myArray, $i);
array_push($myArray, 'test a string');
}
$time_end = microtime(true);
printf("Took %f seconds for array_push\n", $time_end - $time_start);
$time_start = microtime(true);
$myArray = array();
for ( $i = 0; $i < 100000; ++$i )
{
$myArray[] = $i;
$myArray[] = 'test a string';
}
$time_end = microtime(true);
printf("Took %f seconds for array[]\n", $time_end - $time_start);
Потребовалось 0,197076 секунд для array_push Потребовалось 0,122565 секунды дляarray []
Увеличить тестовый номер до 500000:
Взял 0,779719 секунд для массива [] Взял 0,757806 секунд для array_push
Взял 1,008018 секунд для array_push Взял 0,494230 секунд для массива []
Проверьте, изменил ли я порядок тестирования.разница в скорости в 2 раза.