Help us understand the problem. What is going on with this article?

[PHP]Blackfireを使ってプロファイリングしてみよう!

More than 1 year has passed since last update.

Blackfire

blackfire.png

Blackfire

  • どのメソッドを通り、どれくらい時間がかかり、メモリはどの位消費している等をプロファイリングしてくれる素晴らしいサービス
  • フリープラン・プレミアムプラン・エンタープライズプランと3種類ある
  • フリープランでも十分なサービスを受けることができる

さっそく使ってみる

試した環境

  • Vagrant 1.7.4
  • CentOS 6.7
  • PHP 5.6.24

アカウントの作成

Sign up

  • 今回はGoogleアカウントで登録

インストール

Installation

  • 上記ページに遷移
  • 環境別タブから「CentOS」を選択
  • 手順に沿ってひたすらインストール
    • 基本的にコピー・インストールの繰り返しでOK
    • ドキュメントが丁寧なので迷わ無いはず

プロファイリング

  • インストールの工程が全て完了したらプロファイリングを行う
  • コマンドラインかChrome拡張でプロファイリングが可能

と、ちょっとその前に、、、

トラブルシューティング

  • 1件ハマったところがあったので記載
  • 全てのインストール完了したけれど、プロファイリングが上手くいかない。。。
  • 現象は以下(コマンドラインの場合)
$ blackfire curl [検証URL]
Are you authorized to profile this page? No probe response, missing PHP extension or invalid signature for relaying agent.

゚(∀) ゚ エッ? ヘ(゚д゚)ノ ナニコレ?

  • 対処方法としてはインストール後に httpd の再起動も必要(たぶん、、、)
$ sudo service httpd restart
  • この後は問題なくプロファイリングできた!
  • 成功すると以下のような感じ(コマンドライン版)
$ blackfire curl [検証URL]
Profiling: [########################################] 10/10
Blackfire cURL completed
Graph URL https://blackfire.io/profiles/[key]/graph
No tests! Create some now https://blackfire.io/docs/cookbooks/tests
No recommendations

Wall Time     324ms
CPU Time      223ms
I/O Time      101ms
Memory       5.27MB
Network         n/a     n/a       -
SQL             n/a       -

気を取り直してプロファイリング

コマンドラインでプロファイリング

  • もうやったので割愛

Chrome拡張でプロファイリング

インストール

Chrome extension

  • 上記ページへ遷移
  • install the Companion ボタンを押下して拡張をインストール

プロファイリング

  • プロファイリングしたいページヘ遷移
    • Blackfireをインストールした環境のページ
  • Chrome拡張を選んで Profile ボタンをクリック
    • backfire-chrome-extension.png
  • プロファイリング中
    • blackfire-processing.png
  • できた!
    • blackfire-complete.png

プロファイリング結果を見る

Profiles

  • 上記ページへ遷移
  • 取得したプロファイリングが一覧で表示されるはずなので、閲覧したプロファイリングを選択する
  • なんや色々見られる!!
    • ※プロファイリング結果の見方は今回割愛させていただきます(^ω^)

プロファイリング結果を見て得られるもの

まだまだ使い始めたばかりなので何がなんやら状態ですが、
以下の情報からどこを最適化すればよいか分かるようになった

  • 全体でどのくらい時間かかっているか分かる
  • どこがボトルネックになっているか分かる
  • メソッドが何回コールされているか分かる

以上、インストールからプロファイリングの取得・閲覧まででした。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした