私のプロジェクトはopencvでcで書いています。割り当てられたメモリまたはプログラムで使用されているメモリに関する情報を出力したい。メモリに関する情報を提供する関数はありますか? 最後に、Qt for Linux および Windows を使用しています。
前もって感謝します。
ラッパーを作成してmalloc
、free
使用しているメモリ量を追跡できます。
編集: 外部ライブラリで malloc と free の呼び出しも傍受したい場合は、それらを共有ライブラリで定義し、libc の前にロードする必要があります。これを行う方法は、OS によって異なります。
Linux では、独自のプロセス情報疑似ファイルを調べます。
/proc/[pid]/statm
Provides information about memory usage, measured in pages. The columns are:
size total program size
(same as VmSize in /proc/[pid]/status)
resident resident set size
(same as VmRSS in /proc/[pid]/status)
share shared pages (from shared mappings)
text text (code)
lib library (unused in Linux 2.6)
data data + stack
dt dirty pages (unused in Linux 2.6)
Windows では、プロセスプロセス オブジェクトのパフォーマンス カウンターを所有しています。
Private Bytes
このプロセスが割り当てた、他のプロセスと共有できない現在のバイト数を示します。
また、elf、ダンプ、またはマップ ファイルをチェックすると、ビルド時にコード/データ セグメントのある程度のメモリ分析を行うことができます。また、スタックの使用に関する GCC コマンド ライン オプションは、-fstack-usage および -fcallgraph-info です。