xdebugtoolkitをちょっと使ってみようとしたらとてつもなく苦労した!

output 開発ツール

EC-CUBEにXHProfをかけてといわれたもののpeclで入れるのめんどくさいな・・・と思ってxdebugで出来る方法がないのかなーと調べたら

php と xdebug-profiler できれいな画像をだしてみた – riaf-ja blog

こちらを発見、よくわからんけどやってみようと思ったらとんでもなくはまりましたよ。。。

xdebugでプロファイラーの起動

~~~
xdebug.profiler_enable=1
xdebug.profiler_output_dir=”/tmp”
xdebug.profiler_output_name = cachegrind.out.%s
~~~

とありますが、これをやるとすべてのPHPで実行されてしまうのでphp.iniのほうでは
~~~
xdebug.profiler_enable=0
~~~

そして実行したいプログラムの.htaccessかなにかに書きます
~~~
php_flag xdebug.profiler_enable 1
~~~

一回プログラムを叩いてみて/tmpにcachegrind.out.****ってファイルが出来ていればOKです

xdebugtoolkitをインストール

Google Code Archive - Long-term storage for Google Code Project Hosting.

ここに書いてある通りにこれだけでOK
~~~
svn co http://xdebugtoolkit.googlecode.com/svn/tags/0.1.5/xdebugtoolkit/ xdebugtoolkit
~~~

実行するにはこんな感じ、ただし動かない!
~~~
cd ./xdebugtoolkit
./cg2dot.py /tmp/cachegrind.out.******* | dot -Tpng -ooutput.png
~~~

graphvizのインストール

centos5.4だとデフォルトのリポジトリでは入らないようだったのでepelから入れてみました
~~~
yum install –enablerepo=epel,remi graphviz
~~~

特に再起動とかも必要ないみたいなので再度たたくとこんなエラーが出て動きません
~~~
Renderer type: “png” not recognized. Use one of: canon cmap cmapx dia dot fig hpgl imap ismap mif mp pcl pic plain plain-ext ps ps2 svg svgz vtx xdot
~~~

どうやらインストールしたものが足りないらしい・・・ので追加で入れます

~~~
yum install –enablerepo=epel,remi graphviz-gd
~~~

これでエラーがなくなりました!が実はもうひとつエラーが出ておりました

~~~
File “./cg2dot.py”, line 33
except CgParseError as e:
^
SyntaxError: invalid syntax
~~~

pythonの新しいバージョンを入れる

CentOSだとデフォルトのpythonのバージョンが低いので動かないらしいです。。。
でもyumでupdateしちゃうとyumが動かなくなることがあるのでソースから入れましょう・・・そこはもう省略!

で、ちゃんと入ったものとして

~~~
/usr/lodal/python2.7/bin/python2.7 cg2dot.py /tmp/cachegrind.out.******* | dot -Tpng -ooutput.png
~~~

これでよーやく結果が出ました(;´д⊂)

出来たのはこんな感じになりました(TOPページです)
output

あとはクラス名が省略されないためにはどうすればいいのかが知りたいです!!
誰か教えてくださいませ_(._.)_

コメント

タイトルとURLをコピーしました