Jak zapewne wiesz, Xdebug porzucił obsługę profilowania pamięci od wersji 2. *. Wyszukaj ciąg „usunięte funkcje” tutaj: http://www.xdebug.org/updates.php
Usunięte funkcje
Usunięto obsługę profilowania pamięci, ponieważ nie działało to poprawnie.
Więc wypróbowałem inne narzędzie i działało dobrze.
https://github.com/arnaud-lb/php-memory-profiler
Oto, co zrobiłem na moim serwerze Ubuntu, aby to włączyć:
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
A potem w moim kodzie:
<?php
memprof_enable();
memprof_dump_callgrind(fopen("/tmp/callgrind.out", "w"));
Na koniec otwórz callgrind.out
plik za pomocą KCachegrind
Korzystanie z Google gperftools (zalecane!)
Przede wszystkim zainstaluj gperftools Google , pobierając najnowszy pakiet tutaj: https://code.google.com/p/gperftools/
Wtedy jak zawsze:
sudo apt-get update
sudo apt-get install libunwind-dev -y
./configure
make
make install
Teraz w twoim kodzie:
memprof_enable();
memprof_dump_pprof(fopen("/tmp/profile.heap", "w"));
Następnie otwórz terminal i uruchom:
pprof --web /tmp/profile.heap
pprof utworzy nowe okno w istniejącej sesji przeglądarki, jak pokazano poniżej:
Xhprof + Xhgui (moim zdaniem najlepiej profilować zarówno procesor jak i pamięć)
Dzięki Xhprof i Xhgui możesz również profilować użycie procesora lub tylko użycie pamięci, jeśli jest to obecnie Twój problem. To bardzo kompletne rozwiązanie, daje pełną kontrolę, a logi można zapisywać zarówno w mongo, jak iw systemie plików.
Aby uzyskać więcej informacji, zobacz moją odpowiedź tutaj .
Czarny ogień
Blackfire to profiler PHP stworzony przez SensioLabs, gości z Symfony2 https://blackfire.io/
Jeśli używasz Puphpet do konfiguracji maszyny wirtualnej, z przyjemnością dowiesz się, że jest obsługiwana ;-)