1

実際、私のコードにはmallocがあります。ubuntu OS を使用していますが、ヒープメモリの使用量を知りたいですか?

実行中のプロセスがubuntu OSで使用したヒープの量を見つけることができるコマンドはありますか?

今、malloc が無限ループにあり、1 つの端末で実行され、別の端末を使用しているとします。その実行中のプロセスによって占有されているヒープ メモリの量を知りたいと思います。

4

2 に答える 2

0

/proc ファイルシステムを使用できます

/proc/pid/shmam

その時点で使用しているメモリの量が正確にわかります。

詳細な入力については、参照してください

https://serverfault.com/questions/48582/how-is-memory-usage-reported-in-linux
アプリケーションまたはプロセスの実際のメモリ使用量を測定するには?

于 2013-03-15T04:45:18.417 に答える
0

アプリケーションが実際に使用するメモリの量を本当に知りたい場合は、プロファイラー内で実行する必要があります。たとえば、valgrind使用されているメモリの量や、さらに重要なこととして、プログラムで発生する可能性のあるメモリ リークについての洞察を得ることができます。

調べてください、 http: //valgrind.org/docs/manual/mc-manual.html

Valgrind は基本的に x86 エミュレータであり、メモリのすべての読み取りと書き込みをチェックし、メモリの割り当てと割り当て解除のすべての呼び出しをインターセプトします。valgrind の memcheck ツールは、以下を検出できます。

1) 初期化されていないメモリの使用、

2) 解放後のメモリの読み取り/書き込み

3) malloc されたブロックの末尾の読み取り/書き込み

4) スタック下の不適切な領域の読み取り/書き込み。

5) メモリリーク

6) malloc/new/new[] と free/delete/delete[] の使用の不一致

7) memcpy() および関連する関数での src および dst ポインタの重複

8) 二重に解放されたメモリ

9) アドレス指定できないバイトをシステムコールに渡す

于 2013-03-15T05:43:32.293 に答える