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分で終わるようになりましたとさ
コメント