Зміст

Ієрархічний профайлер XHprof

У Ubilling з релізу 0.5.0 інтегровано інструментарій, що дозволяє включати інтеграцію з 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 наступний рядок:

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, згори, має матеріалізуватися відповідний лінк:

Котрий викликає ось таку красу:

Важливо: не забувайте вимикати XHprof у продакшні! Це інструментар тільки для розробки та відлагодження!