5

私のプロジェクトはopencvでcで書いています。割り当てられたメモリまたはプログラムで使用されているメモリに関する情報を出力したい。メモリに関する情報を提供する関数はありますか? 最後に、Qt for Linux および Windows を使用しています。

前もって感謝します。

4

3 に答える 3

4

ラッパーを作成してmallocfree使用しているメモリ量を追跡できます。

編集: 外部ライブラリで malloc と free の呼び出しも傍受したい場合は、それらを共有ライブラリで定義し、libc の前にロードする必要があります。これを行う方法は、OS によって異なります。

于 2012-09-21T13:21:29.643 に答える
4

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このプロセスが割り当てた、他のプロセスと共有できない現在のバイト数を示します。

于 2012-09-21T13:27:27.820 に答える
-1

また、elf、ダンプ、またはマップ ファイルをチェックすると、ビルド時にコード/データ セグメントのある程度のメモリ分析を行うことができます。また、スタックの使用に関する GCC コマンド ライン オプションは、-fstack-usage および -fcallgraph-info です。

于 2012-09-21T18:10:13.737 に答える