by shigemk2

当面は技術的なことしか書かない

Homebrewを利用してKCachegrind(QCachegrind)をインストールし、PHPで使えるようにする

f:id:shigemk2:20131208183514p:plain

メモです。
あまり動作と内容に保証は出来ないかもしれません。

そもそもKCachegrind は、プログラムのプロファイル結果を
グラフィカルに分かり易く表示してくれるオープンソースのソフトウェアです。

とりあえず他のサイトだとMacPortsを利用してインストールせよなどと
書いてありますが、homebrew派の僕はどうしたらよいのか?
kcachegrindではなく、qcachegrindというものが用意されているようです。

How to install qcachegrind (kcachegrind) on Mac OSX Snow Leopard

1. qcachegrindとqtのインストール

% brew install qcachegrind qt

qtも必要ならしいので、qcachegrindと一緒にインストールしてみる。

2. Graphvizのインストール確認

% which dot

で、

% /usr/local/bin/dot

という出力結果が出ればGraphvizがインストールされているとの事です。

なければ

% brew install graphviz

でインストールしませう。

この段階で、
一応

% qcachegrind

を実行すると、qcachegrindが開きます。
しかし、プロファイル結果ファイルがないと、何もできません。

他の言語だったらファイルをコンパイルしてプロファイル結果ファイルを生成して…
という流れなのでしょうが、今回はPHPXDebugを利用します。

まず、XDebugが有効になっているかどうかを設定ファイル(php.ini)確認しましょう。
まあ、ないでしょうから、

% brew install xdebug

でインストールします。なんかphp.iniにこのコードを貼り付けよ、という
メッセージが出てくるので、その通りにします。

こんな感じのコードをphp.iniに貼りつけるべし。

zend_extension="/usr/local/Cellar/xdebug/2.1.3/xdebug.so"

で、Apacheを再起動(sudo apachectl restart)し、phpinfoで確認する。
phpinfo の結果で Xdebug のエントリが追加されれば OK です。

次に、プロファイルが出来るようにphp.iniを設定する。
こちらを参考にしました。
Xdebug: Documentation

xdebug.profiler_enable=1
xdebug.profiler_enable_trigger=1
xdebug.profiler_output_dir="適当なディレクトリのフルパス"
xdebug.profiler_output_name = callgrind.out.%s

これで、XDebugを利用したプロファイルが可能になるわけですが、
出力用ディレクトリの権限に注意すること。
ただmkdirしただけのディレクトリではプロファイル結果ファイルは生成されないので、
とりあえず777に設定しておきました。

% chmod -R 777 ディレクトリ

一応これでQCachegrindが使えるようにはなったのですが、問題は
使い方がイマイチよく分からないということでしょうか。。