Utiliser webgrind pour le profiling PHP
Webgrind est un outil frontend de profiling pour Xdebug. Il implémente un sous ensemble des fonctionnalités de kcachegrind , s’installe très facilement et est compatible avec toute plate-forme. Il fait l’affaire pour les fix rapides et problemes majeures.
Sommaire
Fonctionnalites
- simplicité d’installation
- Détecte le temps passe dans les fonctions par le coût interne et le coût inclusif. Le cout inclusif étant la somme du coût a l’intérieur de la fonction et le coût des appels aux autres fonctions.
- Affiche si le temps est passé dans des fonctions internes ou dans des fonctions utilisateur.
Installation
Requis
- Vous aurez besoin d’un serveur web avec PHP5 installé. webgrind utilise json_encode qui est disponible nativement depuis PHP5.2 ou comme extension PECL avant cette version.
- Ajouter les configurations suivantes dans votre fichier de configuration (php.ini ou mieux : conf.d/xdebug.ini) :
xdebug.profiler_enable=1 xdebug.profiler_enable_trigger=1 xdebug.profiler_output_name="cachegrind.out.%t.%p"
- Faites un tour sur le site de Xdebug concernant la documentation : http://www.xdebug.org/docs/all_settings
Installez Xdebug si vous ne l’avez pas puisque c’est lui qui effectue le profiling [ http://www.xdebug.org/docs/install
Installation
- Telecharger webgrind[ http://webgrind.googlecode.com/files/webgrind-release-1.0.zip ]
- Extraire le fichier dans un dossier accessible par votre serveur web.
- vous pouvez utiliser webgrind a l’url http://localhost/webgrind, cliquez sur “update” pour charger les fichiers de profiling
Configuration
Webgrind peut être configure en éditant le fichier de configuration config.php. vous pourrez spécifier
- Le chemin a un répertoire en écriture pour les fichiers cachegrind processés dans : $storageDir. par défaut, le dossier /tmp est utilisé.
- Le chemin ou webgrind doit trouver les fichiers de profiling (écrits par Xdebug) : $profilerDir. Ceci peut servir si Xdebug n’est pas installe et que vous voulez profiler des fichiers provenant d’un autre environnement par exemple. par défaut, le dossier /tmp est utilisé.
