Функция timer_stop()
в WordPress предназначена для получения или отображения времени, прошедшего с момента начала генерации страницы до момента вызова этой функции. Это полезный инструмент для разработчиков, который помогает оценить производительность и оптимизацию своих приложений.
timer_stop( int|bool $display, int $precision = 3 ): string
Функция timer_stop()
вычисляет время выполнения PHP-скрипта, начиная с момента вызова функции timer_start()
. В отличие от timer_float()
, которая отслеживает время от начала работы PHP, timer_stop()
фокусируется на времени, затраченном на генерацию страницы в рамках WordPress.
Параметры функции
- $display (int|bool) (обязательный): Указывает, нужно ли выводить результат на экран (1|true) или возвращать его (0|false). По умолчанию — 0 (false).
- $precision (int) (необязательный): Указывает количество знаков после запятой для отображения. По умолчанию — 3.
Возвращаемое значение
Функция возвращает строку, представляющую время в формате «секунды.милисекунды», отформатированную для удобного восприятия.
1. Вывод времени генерации страницы, количества запросов и использования памяти
Функцию можно использовать для вывода статистики о времени выполнения скрипта, количестве SQL-запросов и использовании памяти в подвале сайта и админки:
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)
);
}
2. Демонстрация работы с различной точностью
Можно вызвать timer_stop()
с разной точностью, чтобы увидеть разницу в выводе:
echo 'Секунд: ' . timer_stop(0) . '<br />'; // Секунд: 0.098
echo 'Секунд: ' . timer_stop(0, 5) . '<br />'; // Секунд: 0.09774
echo 'Секунд: ' . timer_stop(0, 10) . '<br />'; // Секунд: 0.0977458954
3. Измерение времени до загрузки основной части ядра WordPress
Функцию можно использовать для измерения времени от начала выполнения скрипта до загрузки основного ядра WordPress:
if (isset($_GET['check_time'])) {
add_filter('init', function() {
echo timer_stop(0, 6); // Вывод времени в секундах
exit;
}, PHP_INT_MAX);
}
// Переходим по URL: http://site/?check_time и видим: 0.035360
4. Замер времени генерации страницы
Чтобы узнать, сколько времени было затрачено на генерацию страницы, вызовите timer_stop()
в конце страницы с помощью хука wp_footer
:
add_action('wp_footer', function() {
echo 'Столько секунд ушло на генерацию: ' . timer_stop(0, 4);
});
// Вывод: Столько секунд ушло на генерацию: 0.1066
Заключение
Функция timer_stop()
является полезным инструментом для оценки времени выполнения скриптов в WordPress. Она позволяет разработчикам оптимизировать производительность своих приложений, предоставляя точную информацию о времени генерации страниц и ресурсах, затраченных на выполнение SQL-запросов. Используйте эту функцию для мониторинга и улучшения пользовательского опыта на ваших сайтах.