Функция TIMER_STOP() в WordPress
Функция TIMER_STOP()
позволяет узнать, сколько времени прошло с момента начала загрузки страницы до момента вызова этой функции. Она полезна для измерения времени выполнения различных частей вашего сайта.
Основные моменты
- Нет хуков.
- Возвращает строку с задержкой времени в формате "секунды.миллисекунды".
Возвращаемое значение
- Тип: строка.
- Возвращает время, отформатированное для удобства чтения и локализованное.
Использование
timer_stop( $display, $precision );
-
$display (int|true|false): Указывает, возвращать ли результат или выводить его на экран.
- 0 или false — вернуть значение.
- 1 или true — вывести значение на экран.
- По умолчанию: 0 (вернуть).
-
$precision (int): Число знаков после запятой для отображения.
- По умолчанию: 3.
Примеры использования
Пример 1: Измерение времени
echo 'Время: '. timer_stop( 0 ); // Вывод: Время: 0.098
echo 'Время: '. timer_stop( 0, 5 ); // Вывод: Время: 0.09774
Пример 2: Проверка времени загрузки при вызове по URL
if( isset( $_GET['check_time'] ) ){
add_filter( 'init', function(){
echo timer_stop( 0, 6 ); // Вывод: 0.002664
exit;
}, PHP_INT_MAX );
}
// Перейдите по адресу: http://site/?check_time и увидите: 0.035360
Пример 3: Измерение времени генерации страницы WordPress
Вызывайте функцию в самом конце страницы с помощью хука wp_footer
:
add_action( 'wp_footer', function(){
echo 'Время генерации страницы: '. timer_stop( 0, 4 );
} );
// Вывод: Время генерации страницы: 0.1066
Пример 4: Вывод времени генерации страницы, количества запросов и использованной памяти
Выводите это всё в футере сайта и в админ-панели:
add_action('admin_footer_text', 'wp_usage' ); // Футер админки
add_action( 'wp_footer', 'wp_usage' ); // Футер сайта
function wp_usage(){
echo sprintf( 'SQL: %d запросов за %s сек. %s МБ',
get_num_queries(),
timer_stop( 0, 3 ),
round( memory_get_peak_usage()/1024/1024, 2 )
);
}
Примечания
- Глобальная:
float $timestart
— время в секундах с момента вызоваtimer_start()
. - Глобальная:
float $timeend
— время в секундах с момента вызова функцииtimer_stop()
.
Изменения в функции
- С версии 0.71: функция была впервые представлена.
Код функции TIMER_STOP()
Функция реализована в wp-includes/load.php
:
function timer_stop( $display = 0, $precision = 3 ) {
global $timestart, $timeend;
$timeend = microtime( true );
$timetotal = $timeend - $timestart;
if ( function_exists( 'number_format_i18n' ) ) {
$r = number_format_i18n( $timetotal, $precision );
} else {
$r = number_format( $timetotal, $precision );
}
if ( $display ) {
echo $r;
}
return $r;
}
Теперь вы знаете, как использовать функцию TIMER_STOP()
для измерения времени выполнения задач в WordPress!