😎 » PHP - FAQ » PHP в прикладах » Як в PHP перевірити за скільки часу виконується код і скільки пам'яті було ним використано
22 0  

Як в 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);


Залишити свій коментар:

Досвід у веброзробці:

2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2009
2023