2015/09/12 第9回g-study発表資料-xdebugでphp scriptのprofileしてみる

26
Xdebug PHP Script Profile してみる 2015 9 12 日 第 9 G-Study 発表資料

Upload: yuta-hayakawa

Post on 16-Apr-2017

1.101 views

Category:

Engineering


1 download

TRANSCRIPT

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とお友達になろう!

ありがとーございました