MAMPでXDebugを有効化してアプリケーションの遅い処理を見つける

EC-CUBE3のテストがなぜか20分かかってて不思議だったので、XDebugを使って調べました
その前段階、MAMP3でXDebugを使うところから

/Applications/MAMP/bin/php/php5.3.28/conf/php.ini を編集する
php5.3.28のところは使っているバージョンによって変える

一番下に、xdebugのセクションがあるのでコメントアウトを外して、更に設定を追加すればいい
~~~
[xdebug]
;zend_extension=”/Applications/MAMP/bin/php/php5.3.28/lib/php/extensions/no-debug-non-zts-20090626/xdebug.so”~~~

↑を↓に変更

~~~
[xdebug]
[xdebug]
zend_extension=”/Applications/MAMP/bin/php/php5.3.28/lib/php/extensions/no-debug-non-zts-20090626/xdebug.so”
xdebug.profiler_enable = 1
xdebug.profiler_append=0
xdebug.profiler_enable_trigger = 1
~~~

こうして、Apacheを再起動すれば、PHPの動作全てにprofilerが有効化される

profilerの結果はwebgrindで見ると簡単
jokkedk/webgrind
ダウンロードして、Apacheでアクセス出来るところに置くだけでOK

さて結果。
一番重い処理だったのがphounitでcode coverageを取るための処理。。つまり原因はxdebugという落ち。。
PHPのプロジェクトでTravisを使ってcode coverageを取っているリポジトリを色々見たところ、PHP5.6の時のみ有効にするなどの対処を取っているようなので、それを真似てプルリク
結果、1テスト20分以上かかっていたものが3分で終わるようになりましたとさ

コメント

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