ご存じのとおり、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"));
最後にKCachegrindでcallgrind.out
ファイルを開きます
Google gperftoolsの使用(推奨!)
まず最初に、https://code.google.com/p/gperftools/から最新のパッケージをダウンロードして、Google 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(私の意見ではCPUとメモリの両方をプロファイリングするのに最適)
XhprofとXhguiそれは現時点ではあなたの問題だ場合は、同様または単にメモリ使用量、CPU使用率をプロファイリングすることができます。これは非常に完全なソリューションであり、完全に制御でき、ログはmongoまたはファイルシステムの両方に書き込むことができます。
詳細については、こちらの私の回答を参照してください。
ブラックファイア
Blackfireは、Symfony2の仲間であるSensioLabsによるPHPプロファイラーです。https: //blackfire.io/
puphpetを使用して仮想マシンをセットアップする場合、それがサポートされていることを喜んで知っています;-)