Work: Profiling PHP code with xhprof

Work Add comments

xhprof - маленький и простой профайлер для PHP.
Лицензия Apache 2.0 Работает только под Unix.
Компилируется и инсталлируется в два счёта. Статистику отдает через web интерфейс (PHP)

Очень удобно, никаких дополнительных программ, только браузер. Перед инсталляцией нужно не забыть поставить PHP development module

apt-get install php5-dev

А потом обернуть нужный код в

xhprof_enable();

<some code is here>

$xhprof_data = xhprof_disable();

и готово.

Я для удобства обернул вообще все вызовы, и отдавал ссылку на страницу с собранной статистикой прямо в HTTP header. Выглядело вот так

// start profiling
xhprof_enable();

<some code is here>

// stop profiler
$xhprof_data = xhprof_disable();
include_once $XHPROF_ROOT . "/root/xhprof/xhprof-0.9.1/xhprof_lib/utils/xhprof_lib.php";
include_once $XHPROF_ROOT . "/root/xhprof/xhprof-0.9.1/xhprof_lib/utils/xhprof_runs.php";
$xhprof_runs = new XHProfRuns_Default();
$run_id = $xhprof_runs->save_run($xhprof_data, "xhprof_foo");
header("x-company-name-profile: http://xhprof.company-name.com/index.php?run=$run_id&amp;source=xhprof_foo");

xhprof.company-name.com прописал в hosts на своём компьютере. А на сервере добавил в конфигурацию Apache виртуальный хост

<VirtualHost *:80>
    ServerName xhprof.company-name.com
    DocumentRoot /root/xhprof/xhprof-0.9.1/hprof_html
    <Directory /root/xhprof/xhprof-0.9.1/hprof_html>
        AllowOverride All
    </Directory>
</VirtualHost>

Любопытно конечно сравнить с другим профайлером - XDebug

Похожие записи:

Leave a Reply

Entries RSS Comments RSS Log in Admin