XdebugでPHP Scriptの
Profileしてみる
2015年9月12日 第9回G-Study発表資料
自己紹介
• ハムスターとペペロンチーノをこよな
く愛する自称GNU/Linux&PHP使いの
エンジニア(かわいい系NEKOMIMI男
子)
• 株式会社グロージェントという会社で
お仕事してます。
• PHP向けフレームワーク「Risoluto」
の自称プロマネやってます
• 風邪ひいたっぽ(´・ω・`)
• 詳しくはこちら!

http://about.me/yuta.hayakawa
ところで皆さん
プロファイラー使ってます?
Wikipedia先生曰く、こういうこと
出典:https://ja.wikipedia.org/wiki/%E6%80%A7%E8%83%BD%E8%A7%A3%E6%9E
%90
Webサイトの応答時間は
1秒が基本……?
特にECサイト系なんかだと
応答速度の向上は死活問題
「なんとなく」なチューニングでは
無理ぽ(´・ω・`)
そこで使うのが
Profiler(性能解析ツール)
PHPなら「Xdebug」が使える
出典:http://xdebug.org/
インストールまでの道のり
• PHPが動作するWebサーバをセットアップ
• アプリケーションをデプロイするのもお忘れなく
• そこにXdebugをインストール
• 詳細は:http://xdebug.org/docs/install
あらやだ!
簡単!
設定までの道のり
• php.iniにこんな感じで追加
• zend_extension="/path/to/modules/xdebug.so"
• xdebug.profiler_enable = On
• Webサーバを再起動
あらやだ!
簡単!
この状態でWebブラウザから
サイトにアクセスすると……
こんな感じで出力される
中身はこんな感じ
あらやだ!
簡単!
ではない(; ・`д・´)
ツールを使おう!
• Windows:WinCacheGrind or QCacheGrind
• http://ceefour.github.io/wincachegrind/
• http://sourceforge.net/projects/qcachegrindwin/
• Linuxなど:KCachegrind
• http://kcachegrind.sourceforge.net/html/Home.html
• Mac:QCacheGrind or KCachegrindを自力でビルド
• Cf.) http://www.tekkie.ro/computer-setup/how-to-install-kcachegrind-qcachegrind-on-
mac-osx/
• Web:WebGrind
• https://github.com/jokkedk/webgrind
重要:PhpStormでもOK
どうやって解析結果を見るの?
• サーバから「cachegrind.out.nnnn」ファイルをゲット
• 各種ツールで読み込ませる
例えばPhpStormでみるとこんな感じ
ボトルネックがどこかわかる!
• 何がどこからどういう順で呼ばれているかがわかる
• どこにどれくらいの時間がかかっているかがわかる
チューニングすべき
ポイントがわかる!
Profilerとお友達になろう!
ありがとーございました

2015/09/12 第9回G-Study発表資料-XdebugでPHP ScriptのProfileしてみる