Как вы, наверное, знаете, 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();
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();
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 для настройки своей виртуальной машины, вы будете рады узнать, что она поддерживается ;-)