====== Ієрархічний профайлер XHprof ======
У Ubilling з релізу 0.5.0 інтегровано інструментарій, що дозволяє включати інтеграцію з [[http://pecl.php.net/package/xhprof|XHprof]]. Даний інструментарій є дуже корисним для оцінки вузьких місць швидкодії, при розробці та відлагодженні модулів Ubilling.
===== Встановлення з PHP 5.3/5.6 =====
Все має бути на місці. Але якщо при перегляді full callgraph ви бачите "нічого" - потрібно просто встановити graphviz
# cd /usr/ports/graphics/graphviz/
# make && make install
===== Встановлення з PHP 7.0/7.1/7.4 =====
Сумно та оригінальний xhprof не працює з PHP 7.0 та вище. Доведеться ставити ручками його працюючий форк.\\
# wget https://pecl.php.net/get/xhprof
# tar zxvf xhprof
# cd xhprof-2.3.9/extension/
# phpize
# ./configure --with-php-config=/usr/local/bin/php-config
# make && make install
===== Встановлення з PHP 8.2 =====
# wget https://pecl.php.net/get/xhprof
# tar zxvf xhprof
# cd xhprof-2.3.9/extension/
# phpize
# ./configure --with-php-config=/usr/local/bin/php-config
# make && make install
та розкоментовуємо в **/usr/local/etc/php.ini** наступний рядок:
extension=xhprof.so
Після чого виконуємо
# apachectl restart
===== Встановлення на Debian 11 з PHP 7.4 =====
# apt install php-dev
# wget https://pecl.php.net/get/xhprof
# tar zxvf xhprof
# cd xhprof-2.3.5/extension/
# phpize
# ./configure --with-php-config=/usr/bin/php-config7.4
# make && make install
# ln -fs /usr/bin/dot /usr/local/bin/dot
Після чого переконайтеся, що в **/usr/local/etc/php.ini** вказані наступні опції
[xhprof]
xhprof.output_dir=/tmp/
а також розкоментуйте (тільки для PHP7)
extension=xhprof.so
===== Використання =====
Для ввімкнення режиму відлагодження, необхідно в файлі конфігурації **config/billing.ini** увімкнути відповідну опцію
XHPROF=1
Після чого, на всіх сторінках Ubilling, згори, має матеріалізуватися відповідний лінк:
{{:undefined:xhprof1.png|}}
Котрий викликає ось таку красу:
{{:undefined:xhprof2.png|}}
{{:undefined:xhprof3.png|}}
{{:undefined:xhprof4.png|}}
**Важливо:** не забувайте вимикати XHprof у продакшні! Це інструментар тільки для розробки та відлагодження!