4

プロセスによって消費されるメモリを説明するための戦略は何ですか? たとえば、プログラムがあり、古いバージョンではメモリの使用が最適ではなく、適切なタイミングでリリースされていませんでした。つまり、必要以上に長く割り当てを保持していました。流した訳ではないので注意。プログラムの新しいバージョンではアルゴリズムが改訂され、プログラムの有効期間内でメモリがより早く解放されるようになりました。どうすればこれを追跡できますか? 頭に浮かぶいくつかの方法は次のとおりです。libc/libstdc ++をラップするmalloc/new置換ライブラリを作成し、valgrindを使用してそれを実行するか、psを使用してプロセスで使用されるメモリをサンプリングし、グラフをプロットしますか?

4

2 に答える 2

6

サードパーティのものを使用したくない場合 (AMD や Intel のものもあり、valgrind には「massif」ツールが必要です)、 Mtraceを調べることができます。

メモリ割り当てについて計画したことのほとんどを実行します。

valgrinds massif ツールを使用することをお勧めします。適切な GUI/グラフはありませんが、プロセンチュアルはかなり正確に表示されます

于 2012-09-25T14:09:29.787 に答える
2

ps を使用して使用されているメモリを分析する前に、次の素晴らしい sof の質問を参照してください:アプリケーションまたはプロセスの実際のメモリ使用量を測定するにはどうすればよいですか?

しかし、ps の制限に問題がない限り、crontab を使用して、N 秒/分ごとに実行されるジョブを作成できます...その結果をps auxファイルに追加します...そして、スプレッドシート ソフトウェアを使用してプロットすることができます時間の経過に伴う記憶の結果。

私は過去にこれを行うことに成功しました。

ただし、おそらく Valgrind の方が適しています: http://valgrind.org/docs/manual/quick-start.html

これと非常によく似たことができます。

于 2012-09-25T14:13:20.113 に答える