2009-10-24 13 views

答えて

36

フットプリントは、コンピュータのRAMメモリにアプリケーションによって占有さのサイズを指定します。

フットプリントは、メモリ消費について話すときに異なる意味を持つことがあります。 私の経験では、メモリフットプリントにはヒープ(ダイナミックメモリ)に割り当てられたメモリやディスクなどからロードされたリソースは含まれないことがよくあります。これは、動的割り当てが一定ではなく、アプリケーションやモジュールの使用方法によって変わる可能性があるためです。 「低フットプリント」または「高フットプリント」を報告するときは、通常、必要なスペースの一定または最上位の測定値が必要です。

たとえば、イメージエディタのフットプリントレポートにダイナミックメモリを含めると、フットプリントはアプリケーションによってアプリケーションにロードされるイメージのサイズに完全に依存します。

サードパーティライブラリのコンテキストでは、ライブラリ作成者は、必要以上にアプリケーションバイナリにコードをリンクしないようにすることで、ライブラリのスタティックメモリフットプリントを最適化できます。例えばCでこれを行うために使用される一般的な方法は、ライブラリ関数を別々のcファイルに配布することです。これは、ほとんどのCリンカーが、呼び出した関数だけでなく、cファイルのすべてのコードをアプリケーションにリンクするためです。したがって、cファイルに単一の関数を置くと、リンカーは呼び出し時にアプリケーションに組み込むことになります。 cファイルに5つの関数を置くと、リンカーはおそらくそれらのうちの1つだけを使用していてもそれらのすべてをあなたのアプリケーションにリンクします。

このすべてが言われているように、フットプリントの一般的な(学術的な)定義には、あらゆる種類のメモリ/ストレージの側面が含まれます。

1

はい、メモリやディスクなどのリソース

2

リソースを参照しています。特にメモリ。実行するには少量のメモリが必要です。

4

一般的に、メモリ使用量は、実行時にメモリに保存される「フットプリント」です。しかし、それはあなたのハードドライブ上でどれくらいのスペースを占めるかを参照することもできますが、最近はそれほど問題はありません。

アプリを作成しているときにメモリが制限されている場合は、プロファイラを実行してプログラムの使用状況を把握することを検討してください。

6

ウィキペディアからMemory footprint記事:

メモリフットプリントは、実行中のプログラムを使用または参照することをメインメモリの量を意味します。

これには、プログラム命令(および場合によっては定数)を含むコードセグメント、データセグメント(初期化および初期化されていない)、ヒープメモリ、コールスタック、追加データを保持するために必要なメモリシンボルテーブル、デバッグデータ構造、オープンファイル、現在のプロセスにマップされた共有ライブラリなどの構造は、実行中にプログラムが必要とし、実行中に少なくとも1回ロードされます。

関連する問題