Скорость выполнения скрипта php

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

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

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

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

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

Пример

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

10 февраля 2012 13 Рубрика: PHP, Важные мелочи

« Предыдущая запись
Выбор хостинга для сайта по состоянию на начало 2012 года
Следующая запись »
"WP e-Commerce – гагно" или чем чревато использование этого плагина для WordPress

Иногда приходится детально обращать внимание на скорость выполнения того или иного скрипта (или части скрипта), не ограничиваясь своим беглым намётанным взглядом. Вот тогда то и приходят на помощь возможности PHP по замеру скорости загрузки. Вы наверняка их использовали, да и в целом знаете как это делается. Но на всякий случай, для тех кто не в курсе как это делать, а также для раздела "Важные мелочи", выкладываю простейший код, решающий данный вопрос.

Всё до безумия просто. В первой строке мы создаём переменную с временем начала работы. Оно достигается посредством функции microtime с переданным true – это позволяет получить количество секунд с большим числом знаков после запятой. Время, к слову, в формате Unix.

Далее идёт весь код скрипта, после чего, в третьей строке, мы вычитаем из текущего времени время начало работы скрипта и вуаля – вы имеете время выполнения php скрипта с точностью до едритькакого знака после запятой.

Читайте также  Представительство microsoft в россии контакты

Напоследок, перед выходными, я хочу поделиться с вами одной игрой. Игра некомпьютерная и рассчитана на весёлых пьяных друзей, для которых не чужд интернет. Нужно распечатать, найти игральный кубик, и сесть вечерком с друзьями за бутылочкой чего-нибудь горячительного. Всё таки сейчас дубовенько и в Питере, вроде как, обещают самый дубак на эти выходные. Кароче, не мёрзнете!

Иногда требуется узнать время выполнения скрипта. И это можно сделать с помощью встроенных в язык PHP функций.

Можно приводить различные варианты. Зачем кому-то может потребоваться узнавать время за которое выполняется код.
Это может быть как личный интерес в тестировании на скорость выполнения чужих функций, библиотек, классов и тд.
Так и при разработке своих скриптов и замера скорости выполнения с целью дальнейшего улучшения.
Представим, что вы разработали какую-то функцию, которая выполняется в течении какого-то времени и вас не устраивает ее скорость работы.
И вы постепенно ее улучшаете. Но не совсем понятно приносят ли эти улучшения какую-то пользу в скорости выполнения или нет.
Для этого можно замерить скорость ее выполнения.

Вариант первый (Не совсем точный но подойдет как пример):
Можно воспользоваться встроенным в язык PHP классом DateTime для предоставлении даты и времен (он начал поддерживаться с PHP 5 по текущую версию PHP7).
Оговорю сразу, что в рамках данного примера для замера скорости будет использоваться функция usleep(), которая будет откладывать выполнение программы на указанное количество микросекунд. Вы можете выполнить проверку на своем коде, который необходимо проверить на скорость выполнения.

И так. Для начала отметим точку с которой необходимо начинать засекать время:

Создаем экземпляр класса DateTime с параметром ‘now’ для получения текущего времени.
После этого необходимо разместить тело тестируемого скрипта (для примера это функция usleep).

Читайте также  Сабрина глевиссиг ведьмак 3

Теперь получаем время окончания работы скрипта:

И получаем разницу между началом и окончанием выполнения скрипта:

И отображаем полученный результат в виде количества секунд и миллисекунд:

Весь код данного примера:

Вариант второй:
Воспользоваться встроенной функцией microtime(), которая поддерживается с PHP4 по текущую версию PHP7 на момент написания статьи.

Создаем переменную, которая будет засекать время начала проверки:

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

Теперь получаем время окончания работы скрипта:

Находим разницу между началом и концом работы скрипта:

И отображаем результат:

Весь код данного примера:

Какой вариант работает более точно не знаю, но предполагаю, что вариант с использованием функции microtime() должен быть более точным, так как в приведенном первом варианте, на создание экземпляра класса DateTime(‘now’) должно затрачиваться больше времени.

Ссылка на основную публикацию
Adblock
detector