Про php профиллер в виде xhprof

Очередной пост полный полезной и актуальной инфомации. Но с другой стороны я это делаю для себя, чтобы потом находить быстрее информацию, а не лазить по 100500 раз в доку.

Есть такая штука как профилирование и занимается ей профайлер. Для пхп есть правильный профайлер именуемый xhprof который написали программисты из фейсбука. Пользоваться рекомендую им.

Для этого xhprof надо установить, делается так:

  • gentoo: emerge xhrpof
  • неправильные дистрибутивы: : pecl install channel://pecl.php.net/xhprof-0.9.2

После этого надо добавить в пхп расширение:

cat /etc/php/apache2-php5.3/ext/xhprof.ini

extension=xhprof.so
xhprof.output_dir="/var/tmp/xhprof"

Потом надо сделать:

mkdir /var/tmp/xhprof
chmod -R 777 /var/tmp/xhprof

Теперь мы идем скачивать себе xhprof, а как скачаем из архива достаем две дирректории: “xhprof_html” и “xhprof_bin” и копируем их в наш /var/www/project.local

А потом в наш клевый index.php добавить надо вот это:

// start profiling
xhprof_enable();

/* ... */
sleep(10);
/* ... */

// stop profiler
$xhprof_data = xhprof_disable();

$XHPROF_ROOT = realpath(dirname(__FILE__));
include_once $XHPROF_ROOT . "/xhprof_lib/utils/xhprof_lib.php";
include_once $XHPROF_ROOT . "/xhprof_lib/utils/xhprof_runs.php";

// save raw data for this profiler run using default
// implementation of iXHProfRuns.
$xhprof_runs = new XHProfRuns_Default();

// save the run under a namespace "xhprof_foo"
$run_id = $xhprof_runs->save_run($xhprof_data, "xhprof_foo");

echo "<hr><a href='http://project.local/xhprof_html/index.php?run={$run_id}&source=xhprof_foo'>{$run_id}</a>";

2011.08.29 19:03