PHP スクリプトのプロファイル

Subodh Poudel 2022年6月21日
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 スクリプトのプロファイル

出力セクションでは、PHP スクリプトがプロファイルされます。コードの誤ったセクションが強調表示されます。

時間、メモリ、機能、場所に関する情報が提供されるコールスタックなどの情報が表示されます。同様に、ローカルスコープの変数に関する情報も表示されます。

このようにして、Xdebug を使用して PHP スクリプトのプロファイルを作成できます。

著者: Subodh Poudel
Subodh Poudel avatar Subodh Poudel avatar

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