TIMER_FLOAT() │ WP 5.8.0
Функция TIMER_FLOAT() позволяет узнать, сколько времени прошло с момента начала выполнения скрипта PHP. Эта функция полезна для мониторинга производительности и оптимизации кода.
Возврат значения
Функция возвращает число с плавающей запятой (float), которое представляет количество секунд, прошедших с начала выполнения скрипта PHP.
Использование
Для вызова функции просто используйте:
timer_float();
Примеры работы
Пример 1: Проверка времени, прошедшего с начала скрипта
Посмотрим, как работает функция, если вызвать ее несколько раз:
var_dump(timer_float()); // float(0.069790124893188)
sleep(1); // Задержка на 1 секунду
var_dump(timer_float()); // float(1.0698711872101)
Пример 2: Форматирование значения
Вот пример, как можно отформатировать результат функции в удобочитаемом формате:
$timer = timer_float();
printf('Прошло %.4F сек.', $timer); // Вывод: "Прошло 0.1347 сек."
Пример 3: Измерение времени от начала PHP до начала WordPress
Эта функция показывает время с момента запуска PHP до начала выполнения ядра WordPress. Сравнив время, можно увидеть, сколько времени проходит перед стартом WordPress:
if (isset($_GET['check_time'])) {
add_filter('init', 'my_check_time', PHP_INT_MAX);
}
function my_check_time() {
$timer_float = timer_float();
$timer_stop = timer_stop(0, 15);
var_dump($timer_float); // выводит время с начала PHP
var_dump($timer_stop); // выводит время с начала WordPress
var_dump($timer_float - (float)$timer_stop); // разница во времени
exit;
}
Как видно, от начала PHP до старта WordPress проходит 0.00196 секунды. Я ожидал, что это будет быстрее.
Пример 4: Время загрузки ядра WordPress
На хуке wp_loaded можно узнать, сколько времени понадобилось для загрузки всего ядра WordPress, до выполнения запросов к базе данных:
if (isset($_GET['check_time'])) {
add_filter('wp_loaded', 'my_check_time', PHP_INT_MAX);
}
function my_check_time() {
var_dump(timer_float()); // выводит время загрузки ядра
exit;
}
Здесь мы видим, что загрузка ядра WordPress заняла 0.0358 секунды.
Пример 5: Вывод времени создания страницы, количества запросов и использования памяти
Чтобы выводить информацию о количестве запросов к базе данных, времени выполнения скрипта и объеме использованной памяти, вставьте следующий код в подвал сайта и админ-панели:
add_filter('wp_footer', 'wp_usage'); // на сайте
add_filter('admin_footer_text', 'wp_usage'); // в админке
function wp_usage() {
echo sprintf(
'SQL: %d за %.3F сек. %s MB',
get_num_queries(),
timer_float(),
round(memory_get_peak_usage()/1024/1024, 2)
);
}
Пример 6: Измерение времени выполнения кода на чистом PHP
Для измерения времени выполнения не нужно использовать функции WordPress. Мы можем воспользоваться встроенной функцией PHP microtime():
$time_start = microtime(true);
// код, время выполнения которого мы измеряем
get_posts();
$diff = sprintf('%.7f', microtime(true) - $time_start);
echo "get_posts() работал $diff секунды";
Пример вывода: get_posts() работал 0.0030319690704346 секунды.
История изменений
- С версии 5.8.0 функция была введена в WordPress.
Код функции TIMER_FLOAT()
function timer_float() {
return microtime(true) - $_SERVER['REQUEST_TIME_FLOAT'];
}
Связанные функции
timer_start(): Начинает тайминг.timer_stop(): Завершает измерение времени.
Эти функции позволят вам более подробно отслеживать время выполнения вашего кода и оптимизировать производительность вашего сайта на WordPress.