Monitorez l’exécution de votre code PHP avec XDEBUG Trace Log

PHP Avancé : Profilez l’exécution de votre page  Php.

 

Quand vous avez un certains niveau de Php ou quand vous travaillez avec des solutions open source comme Magento, et que tout rame, vous aurez envie de monitorer (on dit profiler) les performance de chaque script php.

XDEBUG est le programme souvent installé par défaut avec WAMP qui permet de profiler l’exécution d’un script.

Il génère un fichier texte avec les noms des fonctions et le temps d’exécution. Pour interpréter de façon plus lisible ces données, il faut sous Windows utiliser le programme Wincachegrind, et sous Linux c’est KCachegrind.

 

Pour télécharger Wincachegrind, attention ne plus aller le télécharger sur sourceforge, cette version pose problème car elle date. Voici le lien du fichier qui est compatible avec la dernière version des fichiers générés par XDEBUG.

 

Télécharger WincacheGrind

Procédure à suivre, tout d’abord il vous faut paramétrer le fichier php.ini, dans la section xdebug (faites CTRL + F pour le trouver).

[xdebug]

zend_extension =”c:/wamp64/bin/php/php5.6.25/zend_ext/php_xdebug-2.4.1-5.6-vc11-x86_64.dll”
xdebug.remote_enable = 0
xdebug.profiler_enable = 0
xdebug.profiler_enable_trigger = 1
xdebug.profiler_output_name = cachegrind.out.%u.%H_%R
xdebug.profiler_output_dir =”c:/wamp64/tmp”
xdebug.show_local_vars=0

 

la ligne importante à vérifier est xdebug.profile_enable_trigger = 1

donc allez sur votre page web que vous voulez profiler et ajoutez un paramètre dans l’url :

http://votresite.com/index.php?XDEBUG_PROFILE

chargez votre page et un fichier sera généré dans le répertoire c:/wamp64/tmp

Ouvrez votre programme Wincachegrind, et ouvrez le fichier généré, vous devriez avoir une fenêtre de ce style :

x

Vous pouvez naviguer dans la hiérarchie et regarder le temps d’exécution de chaque fonction. Cet outil est vraiment génial et vous permet de connaitre de manière intime le temps d’exécution de chaque script de régler les problèmes de lenteur.

0 comments… add one

Leave a Comment