timer_stop() WP 0.71
Получает или выводит время выполнения PHP скрипта с момента начала генерации страницы и до момента вызова этой функции.
Эта функция работает на основе глобальной переменной $timestart, которая устанавливается WordPress в начале генерации страницы, в файле wp-settings.php с помощью функции timer_start().
Замечу, что timer_start() вызывается почти сразу, но не в самом начале. А timer_stop() вычисляет разницу с момента вызова timer_start() до вызова timer_stop(). Т.е. вычисляется время генерации страницы в среде WordPress.
Возвращаемое число форматируется для понятного человеческого восприятия, а также локализуется с помощью number_format_i18n() (для русского вместо точки будет запятая).
Работает на основе PHP функции microtime().
Работает на раннем этапе загрузки WordPress, еще до константы SHORTINIT.
Хуков нет.
Возвращает
Строку. Локализованное число с плавающей точкой вида: "секунды.милисекунды".
Использование
timer_stop( $display, $precision );
- $display(число/логический)
- 1/true - выводить результат на экран. 0/false - возвращать.
По умолчанию: 0 (false) - $precision(число)
- Число цифр (милисекунд) после точки (после целого числа секунд) которое должно быть показано.
По умолчанию: 3
Примеры
#1 Демонстрация работы
echo 'Секунд: '. timer_stop( 0 ) .'<br />'; // Секунд: 0,098 echo 'Секунд: '. timer_stop( 0, 5 ) .'<br />'; // Секунд: 0,09774 echo 'Секунд: '. timer_stop( 0, 10 ) .'<br />'; // Секунд: 0,0977458954
Несколько вызовов:
echo timer_stop( 0 ); // Секунд: 0,055 sleep( 1 ); echo timer_stop( 0 ); // Секунд: 1,055
#2 Замерим за какое время генерируется страница WordPress
Для этого вызовем функцию в самом конце страницы, через хук wp_head
:
add_action( 'wp_footer', function(){ echo 'Столько секунд ушло на генерацию: '. timer_stop(0, 4); }); // выведет: Столько секунд ушло на генерацию: 0,1066
#3 Выведем время генерации страницы, количество запросов и сколько было израсходовано памяти
Выведем все это в подвале сайта (во фронте) и в подвале админки:
## Выводит данные о кол-ве запросов к БД, время выполнения скрипта и размер затраченной памяти. add_action( 'admin_footer_text', 'wp_usage' ); // в подвале админки add_action( 'wp_footer', 'wp_usage' ); // в подвале сайта function wp_usage(){ echo sprintf( 'SQL: %d за %s сек. %s MB', get_num_queries(), timer_stop( 0, 3 ), round( memory_get_peak_usage()/1024/1024, 2 ) ); }
Заметки
- Global. float. $timestart Seconds from when timer_start() is called.
- Global. float. $timeend Seconds from when function is called.
Список изменений
С версии 0.71 | Введена. |
Код timer_stop() timer stop WP 5.6.2
function timer_stop( $display = 0, $precision = 3 ) {
global $timestart, $timeend;
$timeend = microtime( true );
$timetotal = $timeend - $timestart;
$r = ( function_exists( 'number_format_i18n' ) ) ? number_format_i18n( $timetotal, $precision ) : number_format( $timetotal, $precision );
if ( $display ) {
echo $r;
}
return $r;
}