Comment utiliser PHP-APD dans vos scripts
-
À la première ligne de votre script PHP, appelez la fonction apd_set_pprof_trace() afin de commencer à enregistrer la trace :
<?php apd_set_pprof_trace(); ?>
Vous pouvez insérer la ligne n'importe où dans votre script, mais si vous ne commencez pas à enregistrer la trace au début de votre script, vous désactiverez les données du profile qui pourraient vous mener à trouver un goulot d'étranglement.
-
Maintenant, exécutez votre script. L'affichage sera écrit dans le fichier apd.dumpdir/pprof_pid.ext.
AstuceSi vous utilisez la version CGI de PHP, vous devrez utiliser l'option "-e" afin d'activer les informations étendues d'APD. Par exemple :
php -e -f script.php
-
Pour afficher les données formatées du profil, exécutez la commande pprofp avec les options de tri et d'affichage de votre choix. Le formatage de la sortie ressemblera à :
bash-2.05b$ pprofp -R /tmp/pprof.22141.0 Trace for /home/dan/testapd.php Total Elapsed Time = 0.00 Total System Time = 0.00 Total User Time = 0.00 Real User System secs/ cumm %Time (excl/cumm) (excl/cumm) (excl/cumm) Calls call s/call Memory Usage Name -------------------------------------------------------------------------------------- 100.0 0.00 0.00 0.00 0.00 0.00 0.00 1 0.0000 0.0009 0 main 56.9 0.00 0.00 0.00 0.00 0.00 0.00 1 0.0005 0.0005 0 apd_set_pprof_trace 28.0 0.00 0.00 0.00 0.00 0.00 0.00 10 0.0000 0.0000 0 preg_replace 14.3 0.00 0.00 0.00 0.00 0.00 0.00 10 0.0000 0.0000 0 str_replace
L'option -R utilisé dans cet exemple trie la table de profil par la colonne "Real Time", représentant le temps mis par le script pour exécuter une fonction donnée. La colonne "cumm call" montre le nombre de fois que la fonction a été appelée et la colonne "s/call", le nombre de secondes chaque appel à la fonction nécessite, en moyenne.
-
Pour générer un fichier "calltree" que vous pourrez importer dans l'application d'analyse de profil KCacheGrind, exécutez la commande pprof2calltree.