Функция TIMER_STOP() в WordPress: особенности и примеры использования

Функция 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!

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *