À 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.
Si 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.