🐿
Xdebug3.xでProfilerを動かす雑な設定
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