42 lines
1.6 KiB
Markdown
42 lines
1.6 KiB
Markdown
**Cette page a été importée automatiquement de notre ancien wiki mais n'a pas encore été révisée.**
|
|
|
|
# Howto xdebug
|
|
|
|
~~~
|
|
# aptitude install php5-xdebug
|
|
~~~
|
|
|
|
Pour l'activer, dans _/etc/php5/conf.d/xdebug.ini_ :
|
|
|
|
~~~
|
|
zend_extension=/usr/lib/php5/20090626/xdebug.so
|
|
xdebug.auto_trace=On
|
|
xdebug.profiler_enable=1
|
|
xdebug.profiler_output_dir=/home/xdebug
|
|
xdebug.trace_output_dir=/home/xdebug
|
|
~~~
|
|
|
|
Attention, bien mettre le bon chemin de l'extension zend (dépend de votre version PHP) et les droits sur le répertoire _/home/xdebug_. Notez qu'il peut se remplir très vite une fois activé !
|
|
|
|
On obtient des fichiers _trace.XXX.xt_ et _cachegrind.out.XXXX_
|
|
|
|
Le fichier xt est une trace de tout les appels aux fonctions PHP du code préfixé par le temps d'exécution. Idéal pour trouver une fonction anormalement longue.
|
|
La seconde colonne contient l'empreinte mémoire, idéal aussi pour répérer une fonction qui utilise trop de mémoire.
|
|
|
|
Le fichier _cachegrind_ peuvent être lus avec l'outil kcachegrind (pour Linux) ou wincachegrind (sous Windows), cela permet de schématiser les appels aux fonctions PHP et de voir le temps passé en % et le nombre d'appels.
|
|
Voici un exemple :
|
|
|
|
[[Image(call1.png)]]
|
|
|
|
Ici, 30% du temps est passé dans php::uasort, appelé par Mage_Core_Model_Layout->getOutput.
|
|
|
|
## Webgrind
|
|
|
|
Webgrind en PHP permet de faire comme kcachegrind mais via un navigateur.
|
|
|
|
|
|
~~~
|
|
$ git clone <https://github.com/jokkedk/webgrind.git>
|
|
~~~
|
|
|
|
Puis dans le fichier de configuration config.php on mettre profilerDir à /home/xdebug. Il faut aussi installer le package graphviz et mettre dotExecutable à /usr/bin/dot si on veut profiter du graphique « call graph ». |