Від автора: син мого знайомого настільки захопився хімією, що почав будинку проводити різні «випробування». Після того, як їх «жертвою» стала люстра на кухні, батько попросив його змінити свої уподобання. В результаті дитина захопився статистикою, і вирішив обчислити середній час горіння одного сірника. Наслідком чого мало не стало загоряння всієї квартири. Я порадив «горе-вченому» зайнятися програмуванням, і встановити час виконання скриптів 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 дозволяє збільшити час виконання скрипта і зберегти все майно (звичайно ж, нажите непосильною працею) в цілості й схоронності!