実際、私のコードにはmallocがあります。ubuntu OS を使用していますが、ヒープメモリの使用量を知りたいですか?
実行中のプロセスがubuntu OSで使用したヒープの量を見つけることができるコマンドはありますか?
今、malloc が無限ループにあり、1 つの端末で実行され、別の端末を使用しているとします。その実行中のプロセスによって占有されているヒープ メモリの量を知りたいと思います。
実際、私のコードにはmallocがあります。ubuntu OS を使用していますが、ヒープメモリの使用量を知りたいですか?
実行中のプロセスがubuntu OSで使用したヒープの量を見つけることができるコマンドはありますか?
今、malloc が無限ループにあり、1 つの端末で実行され、別の端末を使用しているとします。その実行中のプロセスによって占有されているヒープ メモリの量を知りたいと思います。
/proc ファイルシステムを使用できます
/proc/pid/shmam
その時点で使用しているメモリの量が正確にわかります。
詳細な入力については、参照してください
https://serverfault.com/questions/48582/how-is-memory-usage-reported-in-linux
アプリケーションまたはプロセスの実際のメモリ使用量を測定するには?
アプリケーションが実際に使用するメモリの量を本当に知りたい場合は、プロファイラー内で実行する必要があります。たとえば、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) アドレス指定できないバイトをシステムコールに渡す