Блог о веб программировании

1 февраля 2019 г.

Установка и использование XHProf

Установка

Клонируем и устанавливаем расширение:

sudo apt-get install php7.0-dev
cd /usr/share/ git clone https://github.com/RustJason/xhprof git checkout -b php7 origin/php7 cd xhprof/extension phpize7.0 ./configure --with-php-config=/usr/bin/php-config7.0 sudo make && sudo make install

если выскакивает ошибка "configure: WARNING: You will need re2c 0.13.4 or later if you want to regenerate PHP parsers.", то надо выполнить следующую команду:

sudo apt-get install re2c

Если вы видите сообщения о ошибках но make прошел успешно, не стоит беспокоится, он даже в таком состоянии достаточно работоспособен. Как советует make, выполните make test.

Настройка XHProf

Исправляем конфиг PHP, добавляя расширение и прописываем путь до логов  в php.ini:

[xhprof]
extension=xhprof.so
xhprof.output_dir=/var/path-to-logs

Включаем модуль:

cd /opt/php7.0/etc/php.d
sudo ln -s ../mods-available/xhprof.ini

перезагружаем веб-сервер. Для построения графиков устанавливаем пакет:

sudo apt-get install graphviz

Использование

define('XHPROF_DEBUG', extension_loaded('xhprof') && $_COOKIE['test'] == 1 && true); // заменить на false для отключения
if (defined('XHPROF_DEBUG') && XHPROF_DEBUG) {
  $utils_path = "/usr/share/xhprof/xhprof_lib/utils/";
  require_once($utils_path.'xhprof_lib.php');
  require_once($utils_path.'xhprof_runs.php');
  xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY + XHPROF_FLAGS_NO_BUILTINS);
}
 
// код для профилирования
 
if (defined('XHPROF_DEBUG') && XHPROF_DEBUG) {
  $profiler_namespace = 'someapp'; // пространство запусков
  $xhprof_data = xhprof_disable();
  $xhprof_runs = new XHProfRuns_Default();
  $run_id = $xhprof_runs->save_run($xhprof_data, $profiler_namespace);
}

Функция xhprof_enable() принимает в качестве аргументов флаги:

  • XHPROF_FLAGS_CPU для фиксирования статистики процессора
  • HPROF_FLAGS_MEMORY — для памяти
  • XHPROF_FLAGS_NO_BUILTINS — для игнорирования встроенных функций.

xhprof_disable() выключит профайлер и вернет собранную статистику.

Просмотр отчета XHProf

Собранные данные можно проанализировать в интерфейсе XHprof для построения отчетов.

# сменить рабочий каталог на каталог сайта, доступный из веба, например:
cd /var/www/site.ru
# поставить симлинк на веб-интерфейс
ln -s /usr/share/xhprof/xhprof_html

 

Понравился пост? Поделитесь ссылкой с друзьями, они оценят:

Комментарии

Загрузка...

не будет публиковаться на сайте