4

Linux で関数ごとまたは C++ コードの行ごとに (リークだけでなく) メモリ使用量を表示できるランタイム メモリ デバッガーを探しています。プログラムのメモリ使用量の急増を追跡しようとしています。Valgrind と Purify を使用しましたが、リークがないことがわかりました。そのスパイクの後、メモリ使用量がプログラムの予想レベルに戻ると予想していました。

ありがとう。

4

4 に答える 4

3

ツールの valgrind パックから massif ツールを使用できます。

于 2010-11-12T20:34:55.467 に答える
1

メモリ使用量分析のセクション「アプリケーション メモリ分析」では、概要と次のポイントが分かりやすく説明されています。

于 2010-11-12T20:35:57.090 に答える
0

関数のコードサイズの使用状況を取得するには、次のようにします。

nm --demangle --print-size --size-sort --reverse-sort <your exec built with -g> 
于 2013-08-15T00:19:09.560 に答える
0

過去に valgrind を数回使用しましたが、スパイクが発生している場所を把握したい場合は、次のハックを使用します。

1)スパイクのサイズを測定します(SPIKE = 1Gbと仮定)

2) (合計 RAM が 4Gb であると仮定して) 正確に 3Gb + 1 バイトを割り当てる別のカスタム プロセスを実行し、キーを押すまで待ち​​ます。保留にしておきます

3) アプリケーション コードを実行し、メモリ割り当てが失敗する場所を確認します。使用可能なメモリが SPIKE よりわずかに少ないため、スパイクが発生すると、要求されたメモリを割り当てることができなくなります。

それが役に立てば幸い

于 2010-11-12T20:34:12.417 に答える