Функция timer_float()
в WordPress позволяет получить время, прошедшее с момента начала выполнения PHP-скрипта. Это полезный инструмент для разработки и оптимизации, позволяющий отслеживать, сколько времени потребовалось на выполнение определенных участков кода.
timer_float(): float
Функция timer_float()
использует переменную $_SERVER['REQUEST_TIME_FLOAT']
, которая была введена в PHP 5.4.0. Эта переменная хранит временную метку (в секундах) на момент начала обработки запроса PHP. В отличие от функции timer_stop()
, которая измеряет время работы ядра WordPress, timer_float()
отслеживает время от старта PHP.
Возвращаемое значение
Функция возвращает число с плавающей точкой, представляющее количество секунд с момента запуска PHP-скрипта.
1. Простейший вызов функции
Рассмотрим, как работает timer_float()
, когда её вызывают несколько раз в коде:
// Первая проверка времени
var_dump(timer_float()); // float(0.000123456789)
// Ожидаем 1 секунду
sleep(1);
// Вторая проверка времени
var_dump(timer_float()); // float(1.000123456789)
2. Форматирование результата
Иногда полезно форматировать результат для более удобного отображения. Вот пример, как это можно сделать:
$timer = timer_float();
printf('Прошло %.4F сек.', $timer); //> Прошло 0.1234 сек.
3. Измерение времени от начала PHP до начала WordPress
Функция позволяет вычислить время, прошедшее с начала работы PHP до загрузки ядра 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); // float(0.035678)
var_dump($timer_stop); // string(17) "0.034716844558716"
var_dump($timer_float - (float) $timer_stop); // float(0.000961155)
exit;
}
4. Время от начала PHP до загрузки ядра 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()); // float(0.035823106765747)
exit;
}
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
Для более точного измерения времени выполнения конкретного кода можно использовать microtime()
напрямую. Например, чтобы узнать, сколько времени занимает функция get_posts()
:
$time_start = microtime(true);
// Выполняем код, время которого будем замерять
get_posts();
$diff = sprintf('%.7f', microtime(true) - $time_start);
echo "get_posts() работала $diff секунд";
Заключение
Функция timer_float()
является простым и эффективным способом измерения времени выполнения PHP-скрипта. Она полезна для разработчиков, которые хотят оптимизировать производительность своих приложений, позволяя отслеживать, сколько времени уходит на выполнение различных частей кода.