Как мне заставить XHprof начать профилирование?

Я установил xhprof на Debian 7, используя php5-xhprof

Это создало файл /etc/php5/fpm/conf.d/20-xhprof.ini

В этот INI-файл я добавил xhprof.output_dir = «/ tmp / xhprof»

Я создал файл / tmp / xhprof с 755 www-данными: www-data

Я могу подтвердить, что в php включена функция xhprof с помощью phpinfo (), хотя она не дает мне параметра output_dir.

Я запускаю скрипт с первой строкой

xhprof_enable(XHPROF_FLAGS_NO_BUILTINS | XHPROF_FLAGS_CPU | XHPROF_FLAGS_MEMORY);

Там нет файлов, созданных в / tmp / xhprof

Я перезапустил php5-fpm и до сих пор не повезло.

1

Решение

Строка xhprof.output_dir

Каталог, используемый реализацией по умолчанию интерфейса iXHProfRuns (а именно, класса XHProfRuns_Default) для хранения прогонов XHProf.

http://php.net/manual/en/xhprof.configuration.php

В конце профилирования (или скрипта) вам нужно сохранить данные вручную

$xhprof_data = xhprof_disable();

$XHPROF_ROOT = "/tools/xhprof/";
include_once $XHPROF_ROOT . "/xhprof_lib/utils/xhprof_lib.php";
include_once $XHPROF_ROOT . "/xhprof_lib/utils/xhprof_runs.php";

$xhprof_runs = new XHProfRuns_Default();
$run_id = $xhprof_runs->save_run($xhprof_data, "xhprof_testing");

echo "http://localhost/xhprof/xhprof_html/index.php?run={$run_id}&source=xhprof_testing\n";

http://php.net/manual/en/xhprof.examples.php

Если вы не хотите контролировать профилирование в коде своего приложения, вы можете сделать автоматически загруженный фрагмент кода /path/to/xhprof/xhprof_enabler.php:

<?php

xhprof_enable(XHPROF_FLAGS_NO_BUILTINS | XHPROF_FLAGS_CPU | XHPROF_FLAGS_MEMORY);

register_shutdown_function(function(){
$xhprof_data = xhprof_disable();

$XHPROF_ROOT = "/path/to/xhprof";
include_once $XHPROF_ROOT . "/xhprof_lib/utils/xhprof_lib.php";
include_once $XHPROF_ROOT . "/xhprof_lib/utils/xhprof_runs.php";

$xhprof_runs = new XHProfRuns_Default();
$run_id = $xhprof_runs->save_run($xhprof_data, "xhprof_testing");

echo "http://localhost/xhprof/xhprof_html/index.php?run={$run_id}&source=xhprof_testing";
});

А потом добавить

auto_prepend_file=/path/to/xhprof/xhprof_enabler.php

в /etc/php5/fpm/conf.d/20-xhprof.ini

Обратите внимание, что вам также нужно настроить виртуальный хост для просмотра профиля, или вы можете просто использовать символическую ссылку xhprof папка (которая содержит xhprof_html) к вашему стандартному корневому каталогу vhost.

Запустить снова php5-fpm и ты должен быть готов.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]