4
2

More than 3 years have passed since last update.

Xdebug3.xでProfilerを動かす雑な設定

Posted at

Profilerを動かす

偶然にも関わっているお仕事で「APIあたりのレスポンスタイムがよろしくない」という事象にぶち当たり「Profilerで確認してくれない?」というリーダーからのお達しが別のメンバーに来たものの「設定をしたことがない」というので私の方でProfilerの設定を調べました。

せっかくなので動作した設定をここに記しておきます。

設定

xdebug.mode=profile
xdebug.start_with_request=trigger
xdebug.trigger_value=""

簡単に説明します。

mode

xdebug.mode=profile

modeでXdebugの各種動作モードを設定します。

Profilerの場合、時間などを計測しているので、もしかしたら他の機能は削除した方が良いかもしれないです。

start_with_request

xdebug.start_with_request=trigger

start_with_requestはリクエストが来たときにスタートするタイミングを設定します。

valueとしては3つ。

  • yes
    • リクエスト開始と共に自動で開始
  • no
    • 何もしない設定。ただし、xdebug_start_trace()やxdebug_break()でトレースは可能。リクエストで無条件では何もしないということ。
  • trigger
    • Cookie等にトリガー用のパラメーターが存在すれば動作する。パラメーターにはXDEBUG_PROFILE/XDEBUG_TRACE/XDEBUG_SESSION/XDEBUG_SESSION_START等があり、それぞれの機能に紐付く

trigger_value

xdebug.trigger_value=""

valueが設定してあれば、リクエスト時にそれを指定して動作させることが可能になります。

参考のように空の場合、XDEBUG_PROFILE={任意の値}のように好きな値を設定できます。おそらくこの挙動は「値が設定されたらトリガーオン!」ということだと思います。

コンバート表

以前の設定 新しい設定
profiler_enable_trigger xdebug.mode=profileかつxdebug.start_with_request=trigger
profiler_enable_trigger_value trigger_value

Xdebug Helper

リクエストトリガーの設定はブラウザの場合、各種ブラウザ向けの拡張機能が使えます。

拡張に関してはPhpStormのマニュアルにまとまっているのでリンク先を参照してください。

ブラウザーのデバッグ拡張機能

(ちなみにMicrosoft Edge用にはすでにMicrosoft Storeでも公開されてました)。

Xdebug2.xからXdebug3.xの設定コンバートについては

ここに書かれていないXdebug2.xからXdebug3.xの雑な設定コンバートに関しては1つ前の記事もゼヒ参照してください。

Xdebug3.0.0がリリースされたので、ver2からの雑な設定コンバート

以上。

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2