PHP: час виконання скрипта на практиці

15 0 Новини високих технологій

На PHP час виконання скрипта має значення для цілей визначення часу формування сторінки або її елемента, для побудови безпечного і надійного коду сайту цілому.

PHP: час виконання скрипта на практиці
Існує три кардинально різні варіанти цієї мети: час формування сторінки цілком, час відновлення елементу сторінки і час виконання нічим не обмежено, включаючи факт припинення сесії відвідувачем.

Час виконання скрипта

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


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

Функції microtime() і time()

В даному прикладі в циклі використовується різне кількість ітерацій: 567 або 56789. У першому випадку цикл працює швидше, у другому - в десять разів повільніше.
PHP: час виконання скрипта на практиці
Функція microtime() може використовуватися без параметрів, і тоді її результатом буде рядок символів з двох чисел, розділених пропуском. Перше число - кількість мікросекунд, друге число - кількість секунд, що пройшли з дати, визнаної початком епохи "Юнікс".


PHP: час виконання скрипта на практиці
Якщо функція microtime(true) викликається з параметром, і його значення true, то результатом буде число - як сума кількості секунд і мікросекунд. Використання функції без параметрів еквівалентно викликом: microtime(false). Функція time() не працює з микросекундами, бо приклад циклу на меншій кількості ітерацій дає нульовий час виконання.

Практичне значення часу виконання

PHP - швидкий, сучасний і функціонально досконалий мову. У більшості випадків на PHP час виконання скрипта навіть визначати сенсу не має. Але формування сторінки може виконуватися на підставі даних, отриманих з бази даних. У цьому випадку, крім затримки вибору інформації, можуть виникати тимчасові витрати на доставку даних, на облік завантаженості сервера і інші обставини. Сучасне інтернет-програмування часто змушене рахуватися з вимогами розподіленої обробки інформації, необхідністю збору даних з різних ресурсів в Мережі в режимі онлайн. У цих і подібних випадках, оцінка часу виконання скрипта відіграє стратегічну роль і може мати суттєве практичне значення. Зокрема, при розробці пошукової системи може знадобитися переглядати систематично спектр конкретних ресурсів мережі на предмет виконаних на них змін за певний проміжок часу. Але якийсь ресурс може бути:
  • недоступний;
  • заблокований;
  • перебувати на технічному обслуговуванні.
  • У цих випадках скрипт або зависне, або буде невиправдано довго чекати потрібного йому події. Встановивши точний час для виконання скрипта, наприклад, 10 сек., 1 хв. або 5 хв., можна забезпечити власним ресурсу суворе дотримання регламенту по обробці всіх віддалених ресурсів, які йому необхідні для вирішення своїх завдань.

    Час і місце виконання скрипта

    PHP - це серверний мова, але це не у всіх випадках означає, що на PHP час виконання скрипта визначається виключно швидкістю роботи сервера. Лише обмежене коло завдань вимагає внутрішньої обробки. Звернення до бази даних або до ресурсу в Мережі з скрипта - це вихід за межі компетенції сервера і додатковий час, який буде витрачено на очікування встановлення потрібного з'єднання і отримання необхідних даних.
    PHP: час виконання скрипта на практиці
    Запуск PHP-скрипта може проводитися по технології AJAX, тобто після кліка відвідувача сайту елемент сторінки. Це звичайна практика, коли сторінка не оновлюється цілком, а лише її окремий елемент. Як правило, таке рішення може бути пов'язано з вибіркою потрібних даних. Будь-яка затримка виконання тут критична для відвідувача. Якщо час перевищує його очікування, він просто піде на більш швидкий і комфортний ресурс. Розробник може оцінити, скільки часу займає необхідний процес, і в разі якщо на PHP час виконання скрипта почне виходити за допустимі межі, він може відправити відвідувачу замість відповіді адекватне повідомлення. Це значно підвищує якість ресурсу і являє собою гарне рішення.