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からの雑な設定コンバート
以上。
[…] Xdebug3.xでProfilerを動かす雑な設定を公開しましたので合わせてご覧ください。 […]