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

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

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

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

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

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

<?php $start = microtime(true); $array = array(); for ($i = 0; $i < 1000000; $i++) { $array[] = rand(0, 1000000); } $finish = microtime(true); $delta = $finish - $start; echo $delta . ' сек.';

Результат

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

0.76975297927856 сек.

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

Клаcc Timer

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

<?php /** * Класс для измерения времени выполнения скрипта или операций */ class Timer { /** * @var float время начала выполнения скрипта */ private static $start = .0; /** * Начало выполнения */ static function start() { self::$start = microtime(true); } /** * Разница между текущей меткой времени и меткой self::$start * @return float */ static function finish() { return microtime(true) - self::$start; } }

Пример

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

<?php Timer::start(); $array = array(); for ($i = 0; $i < 1000000; $i++) { $array[] = rand(0, 1000000); } echo Timer::finish() . ' сек.';

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

0.80602598190308 сек.

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

Категории

ПрограммированиеPHPДата и время в PHPДата и время

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

Комментарии