PHPのプロファイリング�[第95回PHP勉強会]
石黒 瑞樹
2015/10/28
目 次
1
1. 自己紹介
2
石黒 瑞樹
PHPエンジニアです。
3
2. 概要
4
概要
以上
5
3. キッカケ
6
とあるWebページ
ユーザーから「遅い!」の声
7
とあるWebページ
ユーザーから「遅い!」の声
→スピードアップをしよう!
8
とあるWebページ
ユーザーから「遅い!」の声
→スピードアップをしよう!
→PHP側からの観点で�時間が掛かっている箇所を調査
9
4.調査開始
10
まず
どこが遅いか
11
まず
どこが遅いか
12
まず
どこが遅いか
13
まず
どこが遅いか
→割と遅いし、表示回数も多いページに当たりをつけて調査
14
仮説
SQLが遅いんじゃ?
15
仮説
SQLが遅いんじゃ?
16
仮説
SQLが遅いんじゃ?
17
仮説
SQLが遅いんじゃ?
(ms)
18
結果
SQLが遅いんじゃ?
19
結果
SQLが遅いんじゃ?
→安心して下さい、
20
結果
SQLが遅いんじゃ?
→安心して下さい、
早いですよ。
21
それなら
PHPのプロファイラを用いて、�さらに詳しく調査してみよう!
22
5.プロファイリングツール
※本題
23
結論ファースト
xhgui + uprofiler がおすすめ� (UI) (プロファイラ)
そのほかにも以下のようなツールが存在
UI:PhpStorm, webgrind, uprofiler
プロファイラ:xhprof, xdebug
24
xhguiとは
プロファイラ(xhprof、uprofiler)の
データを良い感じに見せてくれるGUI
25
こんなグラフを生成してくれます
26
こんなグラフを生成してくれます
単体で時間を要している関数
単体でメモリ利用の多い関数
27
こんなグラフも生成してくれます
28
こんなグラフも生成してくれます
関数配下を含めた実行時間
ぐりぐり動く
29
こんなグラフで比較分析
30
こんなグラフで比較分析
ある関数の日別の実行時間
日別のメモリ使用量
31
インストール方法
よきにはからってください
※インストール方法の情報は日本語でたくさんある…
32
ハマりポイント①
xdebugとPhpStormの組み合わせ
時の運により、プロファイルが読み込めない事態が発生
33
ハマりポイント②
xhprofはPHP5.5で動作しない!?
34
ハマりポイント②
xhprofはPHP5.5で動作しない!?
謎の???_op@n
35
36
37
今のバージョンのxhprofは、
PHP5.5で全然使えねーよ※意訳
※代わりにuprofilerが使えるよ
38
ハマりポイント終わり
39
まとめ
40
ご清聴ありがとうございました
41