質問

VS2005 C++ コンパイラ フラグは Xmx???M Java フラグのようなもので、Windows 上で実行するアプリケーションのヒープ サイズを制限できます。

現在の空きメモリを確認するためにメモリを埋めることができるように、ヒープ サイズを制限する必要があります。(コードは組み込みシステムでも実行されますが、これがメモリ使用量を取得する最適な方法です)

役に立ちましたか?

解決

gflags ユーティリティ (Windows デバッグ ツール内) でこれができるかどうかを調べてみるのもよいでしょう。大量のネイティブ アプリケーションを使用して、他にも多くの興味深いことができます。

他のヒント

次のサイズを設定することで、プログラムのヒープ サイズを設定できます。

Linker -> System -> Heap Reserve Size

次を使用してコンパイラのコマンドラインで設定することもできます。 /HEAP:reserve

ヒープ サイズは、使用されるアロケーターによって異なります。プロセスが割り当てることができるメモリの量を制限する Windows API 呼び出しもあるかもしれませんが、申し訳ありませんが、私はそれを知りませんし、今はそれを探す気もありません。しかし、一般に、独自のアロケータを作成する場合 (コンパイラが提供するアロケータを単にラップするだけかもしれません) malloc() または new オペレーター)その方法でヒープ サイズを人為的に制限できます。

あるいは、独自のアロケーターがある場合は、たとえラッパーであっても、合計でどれだけのメモリが割り当てられているかを追跡できます。利用可能な金額がわかっている場合は、減算を行うだけで合計を求めることができます。最大の空きブロックなどの断片化統計も取得できる場合があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top