Как вы, наверное, знаете, 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 вы можете также профилировать использование процессора или только использование памяти, если это ваша проблема на данный момент.
Это очень полное решение, оно дает вам полный контроль, и журналы могут быть записаны как на монго, так и в файловой системе.
Подробнее см. Мой ответ здесь .
Blackfire
Blackfire - это PHP-профилировщик от SensioLabs, ребята из Symfony2 https://blackfire.io/
Если вы используете puphpet для настройки своей виртуальной машины, вы будете рады узнать, что она поддерживается; -)