🐿

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

2021/04/07に公開

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からの雑な設定コンバート

以上。

Discussion