私は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
top
top -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