Время загрузки php-страницы на сервере Apache

Возможно ли узнать время, затраченное сервером Apache на загрузку страницы PHP? Есть ли файл журнала, созданный на сервере Apache для каждой страницы, работающей под сервером Apache?

Я собираюсь предположить, что вы хотите знать, сколько времени потребовалось для PHP для создания страницы.

Когда скрипт начинается, начиная с 5.1, есть запись в $_SERVER вы можете использовать, называемую REQUEST_TIME . Он содержит время, когда запрос был запущен. В конце вашего скрипта вы можете рассчитать его так:

 $time_taken = time() - $_SERVER['REQUEST_TIME']; 

Очевидно, что это не очень точно, и поэтому в PHP 5.4 появился новый REQUEST_TIME_FLOAT :

 $time_taken = microtime(true) - $_SERVER['REQUEST_TIME_FLOAT']; 

Для <5.4 вы можете использовать этот фрагмент в начале вашего скрипта для обратной совместимости:

 if (!isset($_SERVER['REQUEST_TIME_FLOAT'])) { $_SERVER['REQUEST_TIME_FLOAT'] = microtime(true); } 

Обновить

Чтобы Apache выполнил это для вас, вы можете добавить параметр формата журнала %T и / или %D , например

 LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" **%T/%D**" combined 

Опция %T позволяет регистрировать количество секунд и %D регистрирует микросекунды (с Apache 2).

См. Также: Сколько времени требуется, чтобы выполнить запрос

вы можете попробовать формат журнала apache, где вы можете записать время (% D) в микросекундах в ваших журналах доступа.

http://httpd.apache.org/docs/current/mod/mod_log_config.html#formats

Я никогда не пробовал, хотя ..

Вы можете распечатать текущую метку времени при запуске вашего кода, затем распечатать ее в конце и вычесть время окончания из времени начала, чтобы просмотреть общее время загрузки и прогона данных

Вы можете использовать это для создания файла журнала самостоятельно:

в верхней части файла заголовка:

 $process_start = date('H:i:s'); 

в нижнем колонтитуле

 $process_end = date('H:i:s'); echo "<br/> process_start {$process_start}<br/> process_end {$process_end}" 

Не лучший способ, но может работать