Como probablemente sepa, Xdebug eliminó el soporte de creación de perfiles de memoria desde la versión 2. *. Busque la cadena "funciones eliminadas" aquí: http://www.xdebug.org/updates.php
Funciones eliminadas
Se eliminó la compatibilidad con la creación de perfiles de memoria porque no funcionaba correctamente.
Así que probé otra herramienta y funcionó bien para mí.
https://github.com/arnaud-lb/php-memory-profiler
Esto es lo que hice en mi servidor Ubuntu para habilitarlo:
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
Y luego en mi código:
<?php
memprof_enable();
// do your stuff
memprof_dump_callgrind(fopen("/tmp/callgrind.out", "w"));
Finalmente abra el callgrind.out
archivo con KCachegrind
Usando Google gperftools (¡recomendado!)
Primero que nada, instale Google gperftools descargando el último paquete aquí: https://code.google.com/p/gperftools/
Entonces, como siempre:
sudo apt-get update
sudo apt-get install libunwind-dev -y
./configure
make
make install
Ahora en tu código:
memprof_enable();
// do your magic
memprof_dump_pprof(fopen("/tmp/profile.heap", "w"));
Luego abre tu terminal y lanza:
pprof --web /tmp/profile.heap
pprof creará una nueva ventana en su sesión de navegador existente con algo como se muestra a continuación:
Xhprof + Xhgui (el mejor en mi opinión para perfilar tanto la CPU como la memoria)
Con Xhprof y Xhgui también puede perfilar el uso de la CPU o solo el uso de la memoria si ese es su problema en este momento. Es una solución muy completa, le brinda control total y los registros se pueden escribir tanto en mongo como en el sistema de archivos.
Para obtener más detalles, consulte mi respuesta aquí .
Fuego negro
Blackfire es un generador de perfiles PHP de SensioLabs, los chicos de Symfony2 https://blackfire.io/
Si usa puphpet para configurar su máquina virtual, le alegrará saber que es compatible ;-)