Як ви, напевно, знаєте, Xdebug відмовився від підтримки для профілювання пам'яті з версії 2. *. Будь ласка, знайдіть рядок "видалені функції" тут: http://www.xdebug.org/updates.php
Видалені функції
Видалена підтримка профілювання пам'яті, оскільки вона не працювала належним чином.
Тому я спробував інший інструмент, і він добре працював на мене.
https://github.com/arnaud-lb/php-memory-profiler
Це те, що я зробив на своєму сервері Ubuntu, щоб увімкнути це:
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
А потім у моєму коді:
<?php
memprof_enable();
// do your stuff
memprof_dump_callgrind(fopen("/tmp/callgrind.out", "w"));
Нарешті відкрийте callgrind.out
файл за допомогою KCachegrind
Використання Google gperftools (рекомендується!)
Перш за все, встановіть Google gperftools , завантаживши тут останній пакет: https://code.google.com/p/gperftools/
Тоді як завжди:
sudo apt-get update
sudo apt-get install libunwind-dev -y
./configure
make
make install
Тепер у вашому коді:
memprof_enable();
// do your magic
memprof_dump_pprof(fopen("/tmp/profile.heap", "w"));
Потім відкрийте свій термінал і запустіть:
pprof --web /tmp/profile.heap
pprof створить нове вікно в існуючому сеансі веб-переглядача з чимось таким, як показано нижче:
Xhprof + Xhgui (найкращий, на мій погляд, профіль як процесора, так і пам'яті)
За допомогою Xhprof та Xhgui ви можете також профілювати використання процесора або просто використання пам'яті, якщо це зараз ваша проблема. Це дуже повноцінне рішення, воно дає вам повний контроль і журнали можна записувати як на mongo, так і у файлову систему.
Детальніше дивіться мою відповідь тут .
Чорна пожежа
Blackfire - це PHP-профайл від SensioLabs, хлопців Symfony2 https://blackfire.io/
Якщо ви використовуєте puphpet для налаштування своєї віртуальної машини, ви будете раді знати, що вона підтримується ;-)