Profiler un script PHP

Subodh Poudel 21 juin 2022
Profiler un script PHP

Cet article vous guidera tout au long du processus de profilage d’un script PHP à l’aide de Xdebug.

Utiliser Xdebug pour profiler un script en PHP

Xdebug est un outil PHP populaire pour le débogage et le profilage du script PHP. Profiler un script signifie analyser le code pour s’assurer qu’il est optimisé et qu’il a des performances de haut niveau.

Le profilage fournira des informations sur l’utilisation du processeur, de la mémoire et du réseau du programme. Les sections ci-dessous montrent comment configurer l’environnement de profilage et profiler un exemple de script en PHP.

Installer l’outil Xdebug

La première étape consiste à télécharger l’outil Xdebug. Tout d’abord, mettez à jour votre système à l’aide de la commande suivante.

sudo apt-get update

Après avoir mis à jour les packages locaux, utilisez la commande suivante dans le terminal pour installer l’outil Xdebug.

sudo apt-get install php-xdebug

Ensuite, naviguez dans le chemin /etc/php/8.1/mods-available/xdebug.ini et ouvrez le fichier xdebug.ini. Ici, 8.1 est la version PHP du système utilisé dans le tutoriel.

Cela peut varier d’un utilisateur à l’autre. Ajoutez les lignes suivantes dans le fichier 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

Ici, le répertoire 20210902 dans le chemin /usr/lib/php/20210902/xdebug.so pour la valeur de la propriété zend_extension peut différer d’un système à l’autre. Naviguez jusqu’au chemin et utilisez le nom de répertoire correct pour la valeur de la propriété zend_extension.

Ensuite, redémarrez le serveur Web à l’aide des commandes suivantes si le serveur Web est Apache.

sudo systemctl restart apache2
sudo /etc/init.d/apache2 restart

Pour nginx, utilisez la commande suivante.

sudo systemctl restart nginx

Enfin, xdebug est installé dans le système.

Configurez php.ini pour utiliser Xdebug

Nous pouvons vérifier l’installation de Xdebug en PHP en regardant la sortie de la fonction phpinfo(). Mais, l’outil n’est pas encore prêt à être utilisé.

Il faut le configurer dans le fichier php.ini. Pour cela, accédez au fichier php.ini et ouvrez-le avec un éditeur de texte.

Nous pouvons trouver le chemin du fichier dans la sortie phpinfo(). Depuis le système actuel, le fichier se trouve dans le chemin /etc/php/8.1/apache2/php.ini.

Dans le fichier php.ini, ajoutez la ligne suivante à la fin du fichier.

[xdebug]
zend_extension=/usr/lib/php/20210902/xdebug.so
xdebug.show_local_vars=1

Renommez le répertoire 20210902 avec le répertoire utilisé dans votre système. Ensuite, définissez les propriétés display_errors et display_startup_errors sur On et enregistrez le fichier.

Encore une fois, redémarrez le serveur Web. Maintenant, Xdebug est prêt à être utilisé.

Profiler un script PHP

La dernière étape consiste à profiler un script PHP. Nous devons écrire des codes PHP pour le profiler.

Par exemple, créez quatre variables $a, $b, $c et $d. Attribuez une valeur entière 5 et une valeur de chaîne '5' dans $a et $b.

De même, affectez les tableaux array(5) et array('5') dans $c et $d.

Ensuite, utilisez la fonction var_dump() pour vider les quatre variables. Enfin, videz à nouveau une variable $v.

Notez que nous n’avons pas créé de variable nommée $v.

Exemple de code :

$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);

Production:

Profiler un script PHP

Dans la section de sortie, le script PHP est profilé. La section erronée du code est mise en surbrillance.

Il affiche des informations telles que Call Stack, où les informations sur l’heure, la mémoire, la fonction et l’emplacement sont fournies. De même, les informations sur la variable dans la portée locale sont également fournies.

De cette façon, nous pouvons utiliser Xdebug pour profiler un script PHP.

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