PHP スクリプトのプロファイル
この記事では、Xdebug を使用して PHP スクリプトをプロファイリングするプロセスについて説明します。
PHP で Xdebug を使用してスクリプトをプロファイリングする
Xdebug は、PHP スクリプトをデバッグおよびプロファイリングするための一般的な PHP ツールです。スクリプトのプロファイリングとは、コードを分析して、コードが最適化され、高レベルのパフォーマンスを発揮していることを確認することを意味します。
プロファイリングは、プログラムの CPU、メモリ、およびネットワーク使用率に関する情報を提供します。以下のセクションでは、プロファイリング環境をセットアップし、PHP でサンプルスクリプトをプロファイリングする方法を示します。
Xdebug ツールをインストールする
最初のステップは、Xdebug ツールをダウンロードすることです。まず、次のコマンドを使用してシステムを更新します。
sudo apt-get update
ローカルパッケージを更新した後、ターミナルで次のコマンドを使用して Xdebug ツールをインストールします。
sudo apt-get install php-xdebug
次に、パス/etc/php/8.1/mods-available/xdebug.ini
に移動し、xdebug.ini
ファイルを開きます。ここで、8.1
はチュートリアルで使用されているシステムの PHP バージョンです。
ユーザーごとに異なる場合があります。xdebug.ini
ファイルに次の行を追加します。
zend_extension=/usr/lib/php/20210902/xdebug.so
xdebug.remote_autostart = 1
xdebug.remote_enable = 1
xdebug.remote_handler = dbgp
xdebug.remote_host = 127.0.0.1
xdebug.remote_log = /tmp/xdebug_remote.log
xdebug.remote_mode = req
xdebug.remote_port = 9005
ここで、zend_extension
プロパティの値のパス/usr/lib/php/20210902/xdebug.so
内のディレクトリ 20210902
は、システムごとに異なる場合があります。パスに移動し、zend_extension
プロパティの値に正しいディレクトリ名を使用します。
次に、Web サーバーが Apache の場合は、次のコマンドを使用して Web サーバーを再起動します。
sudo systemctl restart apache2
sudo /etc/init.d/apache2 restart
nginx
の場合は、次のコマンドを使用します。
sudo systemctl restart nginx
最後に、xdebug がシステムにインストールされます。
Xdebug を使用するように php.ini
を構成する
phpinfo()
関数の出力を確認することで、PHP への Xdebug のインストールを確認できます。しかし、ツールはまだ使用する準備ができていません。
php.ini
ファイルで設定する必要があります。そのためには、php.ini
ファイルに移動し、テキストエディタで開きます。
ファイルのパスは、phpinfo()
出力で確認できます。現在のシステムでは、ファイルはパス/etc/php/8.1/apache2/php.ini
にあります。
php.ini
ファイルで、ファイルの最後に次の行を追加します。
[xdebug]
zend_extension=/usr/lib/php/20210902/xdebug.so
xdebug.show_local_vars=1
ディレクトリの名前を、システムで使用されているディレクトリに変更します 20210902
。次に、display_errors
および display_startup_errors
プロパティを On
に設定し、ファイルを保存します。
もう一度、Web サーバーを再起動します。これで、Xdebug を使用する準備が整いました。
PHP スクリプトのプロファイル
最後のステップは、PHP スクリプトのプロファイルを作成することです。プロファイルするためにいくつかの PHP コードを書く必要があります。
たとえば、4つの変数 $a
、$b
、$c
、および $d
を作成します。 $a
と $b
に整数値 5
と文字列値'5'
を割り当てます。
同様に、$c
と $d
に配列 array(5)
と array(5)
を割り当てます。
次に、var_dump()
関数を使用して、4つの変数すべてをダンプします。最後に、変数 $v
を再度ダンプします。
$v
という名前の変数は作成していないことに注意してください。
サンプルコード:
$a=5;
$b='5';
$c=array(5);
$d=array('5');
var_dump($a);
var_dump($b);
var_dump($c);
var_dump($d);
var_dump($v);
出力:
出力セクションでは、PHP スクリプトがプロファイルされます。コードの誤ったセクションが強調表示されます。
時間、メモリ、機能、場所に関する情報が提供されるコールスタックなどの情報が表示されます。同様に、ローカルスコープの変数に関する情報も表示されます。
このようにして、Xdebug を使用して PHP スクリプトのプロファイルを作成できます。
Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.
LinkedIn