Несколько методов как узнать время генерации страницы и затраченный объем памяти PHP скрипта.
Вариант 1
Результат
0.24132013320923 сек.
Вариант 2
Вместо $start = microtime(true)
брать значение из переменной $_SERVER['REQUEST_TIME_FLOAT']
, которая содержит время запроса к серверу.
Вариант 3
Если на сервере установлен Xdebag.
Среднее время
Т.к. результат «скачет» и зависит от многих факторов (нагрузка на хостинг и т.д.), доработаем скрипт, добавив запись результата в лог и подсчет среднего арифметического значения.
Функция memory_get_usage()
– возвращает количество памяти в байтах, которое было выделено PHP-скрипту на данный момент.
В Xdebug есть функция xdebug_memory_usage()
, которая возвращает тот же результат.
Результат
33558608 байт
Конвертация результата в килобайты и мегабайты
$memory = memory_get_usage();
...
$memory = memory_get_usage() - $memory;
$i = 0;
while (floor($memory / 1024) > 0) {
$i++;
$memory /= 1024;
}
$name = array('байт', 'КБ', 'МБ');
echo round($memory, 2) . ' ' . $name[$i];
Результат
32 МБ
Объединим приведенные методы в один скрипт.
$start = microtime(true);
$memory = memory_get_usage();
...
$memory = memory_get_usage() - $memory;
$time = microtime(true) - $start;
// Подсчет среднего времени.
$f = fopen('time.log', 'a');
fwrite($f, $time . PHP_EOL);
fclose($f);
$log = file('time.log');
$time = round(array_sum($log) / count($log), 3);
// Перевод в КБ, МБ.
$i = 0;
while (floor($memory / 1024) > 0) {
$i++;
$memory /= 1024;
}
$name = array('байт', 'КБ', 'МБ');
$memory = round($memory, 2) . ' ' . $name[$i];
echo $time . ' сек. / ' . $memory;
0.219 сек. / 32 МБ