2.8.23. Профілювання PHP
Загальна інформація
Профілювання — збір детальної інформації про час роботи функцій скрипта і споживання оперативної пам'яті в процесі обробки запиту до сайту. За допомогою цієї інформації розробник сайту може виявляти найбільш повільні ділянки коду, щоб в подальшому їх оптимізувати і скоротити час роботи скриптів.
Що може показати профілювання:
- Які функції і скільки разів виконувалися в процесі роботи скрипта.
- Скільки часу виконувалася кожна функція.
- Який обсяг оперативної пам'яті використовувався функцією і пікові значення споживання.
Порядок дій
Профілювальник
Важливі моменти:
- Профілювальник можна вмикати для сайтів з версіями PHP 7.0-8.5.
- На час роботи профілювальника автоматично вимикається параметр open_basedir.
- Звіти профілювальника зберігаються в дисковому просторі хостинг-акаунта і займають обсяг і іноді.
Робота з профілювальником виконується в розділі «Профілювання PHP».
Увімкнення
Примітки:
- При увімкненні в
php.iniпідключається розширення і додається директива виглядуauto_prepend_file = "/home/{$login}/.system/profiler/profiler_{$host_id}.php"для запуску профілювальника. - Директива додається окремо і не впливає на додані раніше
auto_prepend_file. - Увімкнення відбувається не миттєво — є невелика затримка в кілька хвилин, необхідна для застосування змін у налаштуваннях PHP.
Виберіть потрібний час у блоці «Профілювання PHP» і натисніть «Увімкнути профілювальник»:
Список IP
Додайте до списку IP, при запитах з яких буде запускатися профілювальник:
Звіти
Примітки:
- Список звітів відображається від нових до старих.
- Файли звітів зберігаються в каталозі
.system/profilerв кореневому каталозі хостинг-акаунта. - Звіти видаляються тільки вручну. Таким чином, вони залишаються доступними для аналізу після вимкнення профілювальника.
Всі результати роботи профілювальника виводяться в блоці «Звіти профілювальника»:
У блоці відображається поточний обсяг, який займають на диску існуючі звіти. Тут же можна видалити всі звіти кнопкою «очистити».
Колонки списку:
- «Дата» — дата та час обробки запиту.
- «URL» — URL запиту.
- «CPU» — час роботи процесора при обробці запиту.
- «Час виконання» — час роботи скрипта при обробці запиту.
- «Пікове споживання пам'яті» — максимальне споживання пам'яті при обробці запиту.
Кнопка «Детальний звіт» відкриває детальну інформацію про роботу скрипта при обробці запиту:
У детальному звіті:
- «Дата та час запуску скрипта».
- «IP» — IP, з якого надійшов запит.
- «Точний URL» — URL, до якого був зроблений запит.
- «Кількість викликів функцій» — кількість функцій, виконаних скриптом при обробці запиту.
- «Розподіл функцій за часом виконання» — графік із частками часу виконання різних функцій відносно загального витраченого часу.
Колонки загального списку викликаних функцій:
- «Функція» — назва функції.
- «Кількість викликів» — скільки разів виконувалася функція.
- «Показники з урахуванням дочірніх функцій»:
- «Час виконання» — скільки часу зайняло виконання функції.
- «CPU» — скільки часу процесор був зайнятий виконанням функції.
- «Споживання пам'яті» — скільки пам'яті було використано в процесі виконання функції.
- «Пікове споживання пам'яті» — пікове значення використання пам'яті при виконанні функції.
- «Показники без урахування дочірніх функцій» — аналогічно до показників вище, тільки без урахування дочірніх функцій.
Натискання на назву функції відкриває детальний звіт по цій функції:
Колонки звіту за функцією:
- «Функція» — назва функції.
- «Кількість викликів» — скільки разів виконувалася функція.
- «Час виконання, мкс» — скільки часу зайняло виконання функції.
- «CPU, мкс» — скільки часу процесор був зайнятий виконанням функції.
- «Споживання пам'яті, байт» — скільки пам'яті було використано в процесі виконання функції.
- «Пікове споживання пам'яті, байт» — пікове значення використання пам'яті при виконанні функції.
Функції в списку поділяються на три групи:
- «Поточна функція» — функція, інформація про яку відкрита в даний момент.
- «Батьківські функції» — функції, з яких викликалася поточна функція.
- «Дочірні функції» — функції, які викликалися з поточної функції.
Натискаючи на назви батьківських/дочірніх функцій, можна переміщатися по ієрархії всіх викликаних функцій і переглядати інформацію по кожній з них.
Вимкнення
Натисніть «Вимкнути профілювальник» у блоці «Профілювання PHP» або дочекайтеся часу автоматичного вимкнення:
Коментарі