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をインストール
ここに書いてある通りにこれだけで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
~~~
これでよーやく結果が出ました(;´д⊂)
あとはクラス名が省略されないためにはどうすればいいのかが知りたいです!!
誰か教えてくださいませ_(._.)_
コメント