Php таймер выполнения скрипта

microtime

Функция microtime() возвращает текущую метку времени Unix с микросекундами. Эта функция доступна только на операционных системах, в которых есть системный вызов gettimeofday().

Список параметров

Если указано и установлено в TRUE , microtime() возвратит float вместо string , как описано в разделе возвращаемых значений ниже.

Возвращаемые значения

По умолчанию microtime() возвращает string в формате «msec sec», где sec представляет собой количество секунд с начала Эпохи Unix (1 января 1970 0:00:00 GMT), а msec — это количество микросекунд, прошедших после sec.

Если параметр get_as_float установлен в TRUE , то microtime() возвратит результат в вещественном виде ( float ), представляющий собой текущее время в секундах, прошедших с начала Эпохи Unix с точностью до микросекунд.

Примеры

Пример #1 Замер времени выполнения скрипта с помощью функции microtime()

/**
* Простая функция для реализации поведения из PHP 5
*/
function microtime_float ()
list( $usec , $sec ) = explode ( » » , microtime ());
return ((float) $usec + (float) $sec );
>

// Спим некоторое время
usleep ( 100 );

$time_end = microtime_float ();
$time = $time_end — $time_start ;

echo «Ничего не делал $time секунд\n» ;
?>

Пример #2 Замер времени выполнения скрипта в PHP 5

// Спим некоторое время
usleep ( 100 );

$time_end = microtime ( true );
$time = $time_end — $time_start ;

echo «Ничего не делал $time секунд\n» ;
?>

Пример #3 Пример использования microtime() и REQUEST_TIME_FLOAT (начиная с PHP 5.4.0)

// Выбираем время сна случайным образом
usleep ( mt_rand ( 100 , 10000 ));

// Начиная с PHP 5.4.0 в суперглобальном массиве $_SERVER доступно значение REQUEST_TIME_FLOAT.
// Оно содержит временную метку начала запроса с точностью до микросекунд.
$time = microtime ( true ) — $_SERVER [ «REQUEST_TIME_FLOAT» ];

echo «Ничего не делал $time секунд\n» ;
?>

Смотрите также

Источник

microtime

Функция microtime() возвращает текущую метку времени Unix с микросекундами. Эта функция доступна только на операционных системах, в которых есть системный вызов gettimeofday().

Для измерения производительности рекомендуется использовать hrtime() .

Список параметров

Если указано и установлено в true , microtime() возвратит число с плавающей точкой ( float ) вместо строки ( string ), как описано в разделе возвращаемых значений ниже.

Возвращаемые значения

По умолчанию microtime() возвращает строку ( string ) в формате «msec sec», где sec представляет собой количество секунд в виде десятичной дроби с начала эпохи Unix (1 января 1970 0:00:00 GMT), а msec — это количество микросекунд, прошедших после sec .

Если параметр as_float установлен в true , то microtime() возвратит результат в вещественном виде ( float ), представляющий собой текущее время в секундах, прошедших с начала эпохи Unix с точностью до микросекунд.

Примеры

Пример #1 Замер времени выполнения скрипта

// Спим некоторое время
usleep ( 100 );

$time_end = microtime ( true );
$time = $time_end — $time_start ;

echo «Ничего не делал $time секунд\n» ;
?>

Пример #2 Пример использования microtime() и REQUEST_TIME_FLOAT

// Выбираем время сна случайным образом
usleep ( mt_rand ( 100 , 10000 ));

// В суперглобальном массиве $_SERVER доступно значение REQUEST_TIME_FLOAT.
// Оно содержит временную метку начала запроса с точностью до микросекунд.
$time = microtime ( true ) — $_SERVER [ «REQUEST_TIME_FLOAT» ];

echo «Ничего не делал $time секунд\n» ;
?>

Смотрите также

  • time() — Возвращает текущую метку системного времени Unix
  • hrtime() — Получить системное время высокого разрешения

User Contributed Notes

  • Функции даты и времени
    • checkdate
    • date_​add
    • date_​create_​from_​format
    • date_​create_​immutable_​from_​format
    • date_​create_​immutable
    • date_​create
    • date_​date_​set
    • date_​default_​timezone_​get
    • date_​default_​timezone_​set
    • date_​diff
    • date_​format
    • date_​get_​last_​errors
    • date_​interval_​create_​from_​date_​string
    • date_​interval_​format
    • date_​isodate_​set
    • date_​modify
    • date_​offset_​get
    • date_​parse_​from_​format
    • date_​parse
    • date_​sub
    • date_​sun_​info
    • date_​sunrise
    • date_​sunset
    • date_​time_​set
    • date_​timestamp_​get
    • date_​timestamp_​set
    • date_​timezone_​get
    • date_​timezone_​set
    • date
    • getdate
    • gettimeofday
    • gmdate
    • gmmktime
    • gmstrftime
    • idate
    • localtime
    • microtime
    • mktime
    • strftime
    • strptime
    • strtotime
    • time
    • timezone_​abbreviations_​list
    • timezone_​identifiers_​list
    • timezone_​location_​get
    • timezone_​name_​from_​abbr
    • timezone_​name_​get
    • timezone_​offset_​get
    • timezone_​open
    • timezone_​transitions_​get
    • timezone_​version_​get

    Источник

    Время выполнения скрипта PHP и потребляемая память

    Несколько способов узнать время выполнения скрипта PHP и затраченный объем памяти при выполнении этого скрипта.

    Время выполнения скрипта

    Способ #1

    Функция microtime() с переданным значением true возвращает число секунд, прошедших с полуночи 01.01.1970 , причём это значение подсчитано до сотых долей секунды. Затем идёт сам скрипт (исполняемый код), который мы и проверяем. В последней строкой будет разница между текущим временем (после выполнения скрипта) и тем, что мы зафиксировали при старте скрипта. Разница времени после выполнения скрипта и времени до начала его работы, и есть время выполнения скрипта.

    $start = microtime(true); // исполняемый код . echo '
    ==============================================================='; echo 'Время выполнения скрипта: ' . (microtime(true) - $start) . ' sec.';
    Время выполнения скрипта: 0.16499996185303 sec.

    Способ #2

    Можно вместо $start = microtime(true) брать значение из переменной $_SERVER[‘REQUEST_TIME_FLOAT’] , которая содержит время запроса к серверу. Вычисление времени выполнения происходит за исполняемым кодом.

    // исполняемый код . $time = microtime(true) - $_SERVER['REQUEST_TIME_FLOAT']; echo $time . ' sec.';

    Способ #3

    Если на сервере установлен Xdebag :

    // исполняемый код . echo xdebug_time_index() . ' sec.';

    Способ #4

    Можно подсчитать среднее значение выполнения скрипта и записать результат в логи:

    $start = microtime(true); // исполняемый код . $time = round(microtime(true) - $start, 3); $f = fopen('time.log', 'a'); fwrite($f, $time . PHP_EOL); fclose($f); $log = file('time.log'); $result = round(array_sum($log) / count($log), 3); echo $result . ' sec.';

    Класс для получения времени выполнения скрипта

    Очень простой класс, который можно использовать для получения времени выполнения скрипта PHP. Имеет приватное статическое свойство $start , в которой будет храниться время начала выполнения скрипта и имеющее значение по умолчанию $start = .0 . Метод start() присваивает значение, которое вернула функция microtime свойству $start . Метод finish() возвращает разницу между текущим временем (после выполнения скрипта) и тем, что мы зафиксировали при старте скрипта (присвоили значение в $start ).

     /** * Разница между текущей меткой времени и меткой self::$start * @return float */ public static function finish() < return microtime(true) - self::$start; >>
    Timer::start(); // исполняемый код . echo 'Время выполнения скрипта: ' . Timer::finish() . ' sec.'; // =================================== // Пример использования класса Timer(). Заполним массив миллионом случайных чисел. Timer::start(); for ($i = 0; $i < 1000000; $i++) < $array[] = rand(0, 1000000); >echo 'Время выполнения скрипта: ' . Timer::finish() . ' sec.';

    Объем использованной памяти

    Функция memory_get_usage() возвращает количество памяти в байтах, которое было выделено PHP скрипту на данный момент.

    Принцип очень похож на измерение времени выполнения скрипта, о котором речь шла выше. Здесь тоже есть, как бы, стартовое состояние и и разница между текущим состоянием и стартовым.

    $memory = memory_get_usage(); // исполняемый код . echo 'Скушано памяти: ' . (memory_get_usage() - $memory) . ' байт';

    В Xdebug есть функция xdebug_memory_usage() , которая возвращает тот же результат.

    // исполняемый код . echo 'Скушано памяти: ' . xdebug_memory_usage() . ' байт';
    Скушано памяти: 36018960 байт

    Конвертация результата в килобайты и мегабайты

    $memory = memory_get_usage(); for ($i = 0; $i < 1000000; $i++) < $array[] = rand(0, 1000000); >$memory = memory_get_usage() - $memory; // Конвертация результата в килобайты и мегабайты $i = 0; while (floor($memory / 1024) > 0) < $i++; $memory /= 1024; >$name = array('байт', 'КБ', 'МБ'); echo 'Скушано памяти: ' . round($memory, 2) . ' ' . $name[$i];

    Время выполнения скрипта и объём потреблённой памяти

    Timer::start(); $memory = memory_get_usage(); // начало исполняемого кода for ($i = 0; $i < 1000000; $i++) < $array[] = rand(0, 1000000); >// конец исполняемого кода $memory = memory_get_usage() - $memory; $name = array('байт', 'КБ', 'МБ'); $i = 0; while (floor($memory / 1024) > 0) < $i++; $memory /= 1024; >echo 'Время выполнения скрипта: ' . Timer::finish() . ' sec.
    '; echo 'Скушано памяти: ' . round($memory, 2) . ' ' . $name[$i];
    Время выполнения скрипта: 0.79099988937378 sec. Скушано памяти: 34 МБ

    Время выполнения скрипта и объём потреблённой памяти в Yii2

    Вывести время выполнения скрипта и объём потреблённой памяти в Yii2:

    echo 'getElapsedTime()) , 'с. ' . round(memory_get_peak_usage()/(1024*1024), 2) . 'МБ -->';

    Источник

    Время выполнения скрипта (PHP)

    Чтобы вычислить время выполнения необходимо воспользоваться функцией mixed microtime([bool $get_as_float = false]) , которая возвращает текущую метку времени Юникс с микросекундами.

    Функция возвращает строку в формате «микросекунды секунды» , например 0.29687500 1384974205 , где 0.29687500 — микросекунды, 1384974205 — количество секунд с начало Эпохи Юникс.

    Если передан параметр $get_as_float = true , то функция вернет float — текущее время в секундах прошедших с начала Эпохи Юникс, с учетом микросекунд.

    Вычисляем время выполнения

    Например стоит задача заполнить массив миллионом случайных чисел и вычислить время выполнения.

    Результат

    На экране будет примерно следующее значение:

    Массив заполнялся примерно 0,77 сек.

    Клаcc Timer

    Очень удобно объявить один раз класс Timer , с методами Timer::start() и Timer::finish() .

    Пример

    Задача та же — заполнить массив миллионом случайных чисел.

    На экране будет примерно следующее:

    Массив заполнялся примерно 0,806 сек.

    Категории

    Читайте также

    • Дата вчера сегодня завтра (PHP)
    • Посчитать сколько времени прошло (PHP)
    • Количество секунд от начала дня (PHP)
    • Разница дат (PHP)
    • Преобразовать дату в секунды (PHP)
    • Количество секунд между датами (PHP)
    • Количество минут между датами (PHP)
    • Количество дней между датами (PHP)
    • Количество часов между датами (PHP)
    • Как получить TIMESTAMP дня текущей недели (PHP)
    • Установить часовой пояс (PHP)
    • Название предыдущего месяца (PHP)

    Комментарии

    Вход на сайт

    Введите данные указанные при регистрации:

    Социальные сети

    Вы можете быстро войти через социальные сети:

    Источник

    Читайте также:  Rest api with java example
Оцените статью