私はPHPプログラム(Magento、重要な場合)でメモリリークを追跡しようとしています。基本的な問題は、時間が経つにつれて成長するオブジェクト/クラスのリークのようです。つまり、より多くの情報がデータベースに記録されるほど、特定のアプリケーションプロセスが使用するメモリが増えます。 Magentoは非常に抽象的なシステムなので、どのようなコードが実行されているのかはそれほど多くのメモリを消費していることは必ずしも明らかではありません。それが私が追跡しようとしているものです。memory_get_peak_usageキャッシュのクリア
私はプログラムのブートストラップファイルの最後にパフォーマンスをベンチマークするためにmemory_get_peak_usage
を使用していましたが、250MBのピーク使用から約1週間で310MBのピーク使用まで着実に増加しています。実行サイクル全体でmemory_get_peak_usage
を断続的に使用して質問します
この呼び出しに先立つピーク時の使用率はどのくらいでしたか? [後のサイクルで]この新しいコールの前にピーク時の使用状況は何でしたか?
私は一度memory_get_peak_usage
を呼び出したら、私はあるに実行している問題は、将来の呼び出しは、私はピーク時の使用が変更された知っている場合でも、最初の呼び出しと同じ値を返します。これは、memory_get_peak_usage
が一度呼び出された後、PHPがその結果をキャッシュしていると私につながります。私は上記のテストを実行するためにキャッシュを解除したいと思います。
memory_get_peak_usage
に複数回コールすることはできますか?上記のシナリオのプロファイリングに代わる方法がありますか?多分xDebugのいくつかの機能?
また、[xhprof](http://www.google.com/search?q=xhprof)をよくご覧ください。これは、リソースの使用状況をよりよく理解できる場合があります。 – Charles