Як в PHP перевірити за скільки часу виконується код і скільки пам'яті було ним використано
Часто виникає необхідність перевірити за скільки часу виконується код PHP і скільки пам'яті було ним використано.
Для реалізації скористаємося двома вбудованими в PHP функціями:
- memory_get_usage() - повертає кількість пам'яті виділеної PHP.
- microtime() — повертає поточну позначку часу Unix з мікросекундами.
Далі ми створимо свою функцію file_size, для переведення кількості пам'яті у відповідні одиниці виміру (для нашої зручності). Наприкінці коду, ще раз викликаємо функції, і вивчимо значення часу та пам'яті, які ми отримали на самому початку скрипту.
function file_size($size)
{
$filesizename = array(
' Bytes', ' KB', ' MB', ' GB', ' TB', ' PB', ' EB', ' ZB', ' YB');
return $size ? round($size/pow(1024, ($i = floor(log($size, 1024)))), 2) .$filesizename[$i] : '0 Bytes';
}
$mem_start = memory_get_usage();
$time_start = microtime(true);
Ваш PHP код
echo 'Время выполнения скрипта: '. round(microtime(true) - $time_start, 4) .' сек.'.'<br>';
echo 'Скрипт сожрал памяти: '. file_size(memory_get_usage() - $mem_start);
Приклад використання:
function file_size($size)
{
$filesizename = array(
' Bytes', ' KB', ' MB', ' GB', ' TB', ' PB', ' EB', ' ZB', ' YB');
return $size ? round($size/pow(1024, ($i = floor(log($size, 1024)))), 2) .$filesizename[$i] : '0 Bytes';
}
$mem_start = memory_get_usage();
$time_start = microtime(true);
for ($i = 1; $i <= 10000; $i++) {
$pls = array('param' =>$i, 'value' => rand());
print_r($pls);
}
echo 'Час виконання скрипта: '. round(microtime(true) - $time_start, 4) .' сек.'.'<br>';
echo 'Скрипт використав памяті: '. file_size(memory_get_usage() - $mem_start);