Функції мови для вимірювання час виконання скриптів PHP

2

Від автора: син мого знайомого настільки захопився хімією, що почав будинку проводити різні «випробування». Після того, як їх «жертвою» стала люстра на кухні, батько попросив його змінити свої уподобання. В результаті дитина захопився статистикою, і вирішив обчислити середній час горіння одного сірника. Наслідком чого мало не стало загоряння всієї квартири. Я порадив «горе-вченому» зайнятися програмуванням, і встановити час виконання скриптів PHP.

Навіщо вимірювання в програмуванні

Насамперед, це безпечніше, ніж хімія і статистика :) . А насправді час виконання програмного коду є важливим параметром, який впливає на працездатність всього ресурсу і окремих його модулів. Цей параметр більше затребуваний при оптимізації і тестування веб-додатків.

Трохи пофантазуємо. Уявімо, що є якийсь «самописний» движок, який розробник «залив» на хороший хостинг і запустив (на його основі) свій сайт. Але чомусь завантаження ресурсу на стороні користувача відбувається дуже повільно.

У такій ситуації спочатку всі шишки «посиплються» на хостера. Швидше за все, розгніваний програміст звернеться зі скаргою у службу підтримки хостингу. Мовляв, не виконуються умови договору, сайт ледве «живий»…

Але насправді проблема повільного завантаження сторінок динамічного ресурсу може ховатися в самому движку. І щоб не виглядати потім «чайником», досвідчений розробник завжди перед здачею проекту вимірює час виконання скрипта PHP.

Можливості PHP

Я завжди називав PHP одним з найбільш зручних мов програмування. Щоб відстежити час роботи коду, розробнику не потрібно писати довгі «талмуди» для перехоплення кожного рядка скрипта. В даній технології реалізовано кілька спеціалізованих засобів. Головним з них є функція microtime(). Вона повертає час (в мілісекундах), що минув з початку 1970 р. Так зване «початок епохи Unix». Якщо передати функції параметр get_as_float зі значенням true, то вона буде повертати часовий проміжок у вигляді цілих секунд і дробових мілісекунд.

Принцип використання microtime() полягає в наступному: функцію викликають на початку скрипта і в його кінці. Потім з останнього значення віднімають початкова. Ось як порахувати час виконання скрипт:

«;
$last=microtime(true);
$value=$last-$first;
echo «Скрипт виконується за: «.$value;
?>

Змінюємо час роботи коду

В PHP значення час роботи скрипта можна обмежувати програмним шляхом (зменшувати або збільшувати). Для цього використовуються декілька функцій, кожна з яких переписує параметр, встановлений у файлі конфігурації (php.ini).
Для початку модифікуємо наш код і збільшимо кількість ітерацій циклу в 20 разів-до 200 мільйонів. Якщо все нормально, то після запуску скрипта ви повинні отримати повідомлення про фатальну помилку :) .

Це означає, що у налаштуваннях параметру max_execution_time задано значення за замовчуванням (30 секунд). Збільшимо максимальний час виконання скрипта на PHP в 3 рази.

Тепер ми не отримуємо повідомлення про помилку.

Змінимо даний параметр до значення за замовчуванням. Використовуємо для цього наступну функцію:

При запуску скрипта ми знову отримуємо повідомлення про фатальну помилку. І це нормально :) . Сьогодні досвідченим шляхом довів, що PHP дозволяє збільшити час виконання скрипта і зберегти все майно (звичайно ж, нажите непосильною працею) в цілості й схоронності!