====== Ієрархічний профайлер 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 у продакшні! Це інструментар тільки для розробки та відлагодження!