0

私は、最大 160 MB の仮想メモリに自動的にコミットしているように見える MFC アプリに取り組んでいます。アプリは通常、10 ~ 14 MB のメモリ使用量で実行されるため、このレベルのコミットされたメモリは過剰に見えます。さらに、VirtualAlloc が呼び出されるコード内の場所はありません... COM と ATL も使用されています。

メモリーは、__tmainCRTStartup のブレークポイントに到達する前に、プロセスが起動するインスタンスをコミット済みとして示します。

このメモリはどのように予約/コミットできますか?

前もって感謝します!

4

2 に答える 2

0

約1000個の余分な要素を割り当てたカスタムオブジェクトの静的配列を使用する「レガシー」コードがあったことが判明したため、これをstd::vectorを使用するように変更すると、この問題が完全に緩和されました...

于 2011-05-11T22:28:53.080 に答える
0

唯一の理由は、使用する DLL である可能性があります。私は多くのプロジェクトで MFC 7.0 と 9.0 を使用してきましたが、このような大量のメモリをコミットしていないことがわかります。

于 2010-07-26T17:49:12.210 に答える