WITH
MOTIVATION
Регистрация
Дата рождения:



Введите код с картинки:
Вы регистрируетесь на сервисе withMotivation

Регистрируясь, вы соглашаетесь с правилами пользования сервисом, и обязуетесь честно и добросовестно относиться к своей работе и работе окружающих!

PHP

Как вычислить время выполнения скрипта PHP?

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

В этой статье мы познакомимся с простым методом вычисления этого времени.

Для этого в PHP имеется встроенная функция microtime();

На самом деле эта функция возвращает число, равное количеству секунд, прошедших с 1 января 1970 года в полночь по Гринвичу. Это число также известно под именем "Unix время", так как именно в этот момент (1.01.1970) был рождён unix.

Кстати, интересный момент: поскольку максимальным двоичным числом в 32-битной системе является число 01111111 11111111 11111111 11111111, переведя его в десятичную систему счисления мы получим 2147483647. Произведя несложные арифметические вычисления, можно сказать, что 19 января 2038 года придёт конец эпохе Unix =), но это для 32-х битных систем. На самом деле, к тому времени уже, я уверен, 32-х битных систем уже существовать не будет (уже сейчас их заменяют 64-х битные), но сам факт, согласитесь, достоин очередного сюжета для книг отечественных писателей-фантастов об апокалипсисе  =)

Но мы вернёмся к microtime().

На самом деле использовать эту функцию довольно удобно для вычисления разницы во времени. Суть способа проста: Мы запоминаем время Unix до выполнения скрипта, затем выполняем скрипт и запоминаем время после выполнения. Разница между вторым и первым числом как раз и будет равна времени выполнению скрипта.

Перейдём от слов к практике. Итак, код:

$startTime = microtime(true);
echo "Привет!";
$finishTime = microtime(true);
$timeScript = $finishTime - $startTime;
echo "Продолжительность работы скрипта в миллисекундах равна:".1000 * round($timeScript,4);

Что мы сделали? Мы запомнили время Unix в первой строке $startTime = microtime(true); и сохранили его как переменную $startTime,

Далее мы запустили скрипт, например echo("Привет!");. На самом деле для более показательного примера лучше запустить более долгодействующий скрипт, чтобы разница во времени была ощутима, например, unsleep(500);

После этого мы повтороно вызываем функцию microtime() и сохраняем значение в переменной $finishTime.

Далее мы вычисляем разницу между временем конца работы скрипта и началом и сохраняем его в переменную $timeScript;

Вот, в принципе, и вся наука. Для вывода этого числа можно воспользоваться функцией echo(), но если мы выведем просто эту переменную, то простой человек увидит просто большое число, и для приведения этого числа в "человеческий облик", нужно округлить это число до десятитысячной доли, выполнив round($timeScript,4), и микросекунды перевести в миллисекунды (умножаем на 1000).

В итоге получим: Продолжительность работы скрипта в миллисекундах равна: 0,0005

Вот таким образом мы можем анализировать свои скрипты на время выполнения и оптимизировать работу своего кода.

Вы действительно хотите удалить запись?

Действительно