22
0
Fork 0

Suppression de cette page qui a été mergé dans HowtoPHP#xdebug

This commit is contained in:
Benoît S. 2017-11-23 14:38:45 +01:00
parent beec79fe10
commit d564ca7486
1 changed files with 0 additions and 52 deletions

View File

@ -1,52 +0,0 @@
---
categories: web
title: Howto Xdebug
...
* Documentation : <https://xdebug.org/docs/>
[Xdebug](https://xdebug.org/) est un débogueur PHP.
# 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
~~~
Pour activer dans un vhost Apache :
~~~
php_admin_value xdebug.profiler_enable 1
~~~
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 :
![Ici, 30% du temps est passé dans php::uasort, appelé par Mage_Core_Model_Layout->getOutput.](/call141f0.png)
## 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 ».