Vapor Trail

明るく楽しく元気よく

xhprofを試す

xhprofを試してみた。php8.1でも動く。

導入

github.com

Dockerfileに追加

RUN git clone https://github.com/tideways/php-xhprof-extension.git \
    && cd php-xhprof-extension \
    && phpize \
    && ./configure \
    && make \
    && make install

php.iniに追加

extension = tideways_xhprof.so
xhprof.output_dir = /tmp/xhprof

phpinfoで確認

GUIツール

github.com

任意のphpファイルに処理を追記する

tideways_xhprof_enable(TIDEWAYS_XHPROF_FLAGS_MEMORY | TIDEWAYS_XHPROF_FLAGS_CPU);

~~~~

$xhprof_data = tideways_xhprof_disable();
include_once "/var/www/html/xhprof/xhprof_lib/utils/xhprof_lib.php";
include_once "/var/www/html/xhprof/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";

アクセスすると/tmp/xhprofにファイルが生成される。

graphvizをインストールするとグラフでも見れる。

Laravelのpublic/index.phptideways_xhprof_enableを追記しても動くがグラフ化すると重い。

github.com

参考: speakerdeck.com