Comme vous le savez probablement, Xdebug a abandonné le support du profilage de la mémoire depuis la version 2. *. Veuillez rechercher la chaîne "fonctions supprimées" ici: http://www.xdebug.org/updates.php
Fonctions supprimées
Suppression de la prise en charge du profilage de la mémoire car cela ne fonctionnait pas correctement.
J'ai donc essayé un autre outil et cela a bien fonctionné pour moi.
https://github.com/arnaud-lb/php-memory-profiler
Voici ce que j'ai fait sur mon serveur Ubuntu pour l'activer:
sudo apt-get install libjudy-dev libjudydebian1
sudo pecl install memprof
echo "extension=memprof.so" > /etc/php5/mods-available/memprof.ini
sudo php5enmod memprof
service apache2 restart
Et puis dans mon code:
<?php
memprof_enable();
// do your stuff
memprof_dump_callgrind(fopen("/tmp/callgrind.out", "w"));
Enfin ouvrez le callgrind.out
fichier avec KCachegrind
Utilisation de Google gperftools (recommandé!)
Tout d'abord, installez Google gperftools en téléchargeant le dernier package ici: https://code.google.com/p/gperftools/
Puis comme toujours:
sudo apt-get update
sudo apt-get install libunwind-dev -y
./configure
make
make install
Maintenant dans votre code:
memprof_enable();
// do your magic
memprof_dump_pprof(fopen("/tmp/profile.heap", "w"));
Ouvrez ensuite votre terminal et lancez:
pprof --web /tmp/profile.heap
pprof créera une nouvelle fenêtre dans votre session de navigateur existante avec quelque chose comme indiqué ci-dessous:
Xhprof + Xhgui (le meilleur à mon avis pour profiler à la fois le processeur et la mémoire)
Avec Xhprof et Xhgui, vous pouvez également profiler l'utilisation du processeur ou simplement l'utilisation de la mémoire si c'est votre problème pour le moment. C'est une solution très complète, elle vous donne un contrôle total et les journaux peuvent être écrits à la fois sur mongo ou dans le système de fichiers.
Pour plus de détails, voir ma réponse ici .
Blackfire
Blackfire est un profileur PHP de SensioLabs, les gars de Symfony2 https://blackfire.io/
Si vous utilisez puphpet pour configurer votre machine virtuelle, vous serez heureux de savoir qu'elle est prise en charge ;-)