PHP処理のボトルネックをプロファイルで調査します
今回は、Docker環境でXdebugのProfiling機能を使った検証です
Xdebug: Documentation » Profiling
環境の詳細は以下の通り
- Windows 11 Home 64bit
- Docker Desktop
- PHP 8.2.28
- Xdebug v3.4.2
既に、任意のPHPプロジェクトをDockerで開発していることを前提とします
Xdebug 2では設定が異なるので注意が必要です。今回はXdebug 3です
Xdebugのインストール
Docker環境にXdebugをインストールします
php.iniに以下の設定を追加します
[xdebug] xdebug.mode=profile xdebug.start_with_request=yes xdebug.profiler_output_name=cachegrind.out.%t-%s xdebug.output_dir=tmp/xdebug
profiler_output_nameでプロファイル結果のファイル名を指定します
ファイルが多くなると、どの処理かわからなくなるので、
ドキュメントを参考にして必要に応じて設定します
https://xdebug.org/docs/all_settings#trace_output_name