プログラムメモリ消費を測定する便利なツール

プログラムメモリ消費を測定する便利なツール

私はDebianでCコードを開発しました。私のコードのメモリ消費をリアルタイムで監視するプログラムを探しています。私が興味を持っている唯一の値は最大RAM消費量であり、プログラムが終了しても(例えばSIGKILLを介して)その値を維持する必要があります。誰でも便利なツールをお勧めできますか?

通常使用中にtop -p pidnumber出力が遅すぎてプログラムが終了すると、終了する前にRAM消費は表示されません。

答え1

Valrind ツール Massif を使用できます。

valgrind --tool=massif prog

デフォルトでは、使用されたヒープメモリのグラフを生成しますが、使用されたスタックメモリも表示できます。

valgrind --tool=massif --stacks=yes prog

Valgrindはプログラムの実行を遅くする傾向があるため、アプリケーションの実行に長い時間がかかる場合は注意してください。

Massifについて、もっと詳しく知りたい方はおすすめですValgrind ドキュメントこれはとても良いです。

答え2

toptop -d delay上部のまたはを押して遅延を変更できますs

1 秒あたりの常駐サイズを取得するには:

while rss=$(ps -o rss= -p "${pid?}") && printf '\r%d' "$rss"; do
  sleep 1; done; echo

または、もっと興味深く見るには:

sp="/-\|"
while rss=$(ps -o rss=,args= -p "${pid?}") && printf '\r[%c]%s' "$sp" "$rss"; do
  sleep 0.5; sp=${sp#?}${sp%???}; done; echo

関連情報