Come probabilmente saprai, Xdebug ha abbandonato il supporto per i profili di memoria dalla versione 2. *. Cerca la stringa "funzioni rimosse" qui: http://www.xdebug.org/updates.php
Funzioni rimosse
Rimosso il supporto per la profilazione della memoria in quanto non funzionava correttamente.
Quindi ho provato un altro strumento e ha funzionato bene per me.
https://github.com/arnaud-lb/php-memory-profiler
Questo è quello che ho fatto sul mio server Ubuntu per abilitarlo:
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
E poi nel mio codice:
<?php
memprof_enable();
// do your stuff
memprof_dump_callgrind(fopen("/tmp/callgrind.out", "w"));
Infine apri il callgrind.out
file con KCachegrind
Utilizzo di Google gperftools (consigliato!)
Prima di tutto installa Google gperftools scaricando l'ultimo pacchetto qui: https://code.google.com/p/gperftools/
Quindi come sempre:
sudo apt-get update
sudo apt-get install libunwind-dev -y
./configure
make
make install
Ora nel tuo codice:
memprof_enable();
// do your magic
memprof_dump_pprof(fopen("/tmp/profile.heap", "w"));
Quindi apri il tuo terminale e avvia:
pprof --web /tmp/profile.heap
pprof creerà una nuova finestra nella sessione del browser esistente con qualcosa come mostrato di seguito:
Xhprof + Xhgui (il migliore secondo me per profilare sia cpu che memoria)
Con Xhprof e Xhgui puoi anche profilare l'utilizzo della CPU o solo l'utilizzo della memoria se questo è il tuo problema al momento. È una soluzione molto completa, ti dà il pieno controllo ei log possono essere scritti sia su mongo che nel filesystem.
Per maggiori dettagli vedere la mia risposta qui .
Fuoco nero
Blackfire è un profiler PHP di SensioLabs, i ragazzi di Symfony2 https://blackfire.io/
Se usi puphpet per configurare la tua macchina virtuale sarai felice di sapere che è supportato ;-)