0

ある本で次の文を見つけました。

ヒープ マネージャーは、ヒープ セグメント内のコミットされた領域を使い果たすたびに、より多くのメモリを明示的にコミットし、より多くの割り当てが要求されるにつれて、新しくコミットされた領域をブロックに分割します。

これは、ユーザーが使用する仮想メモリのセグメントにブロックが割り当てられ、メタデータがコミットされたと見なされなくなることを意味しますか?

4

2 に答える 2

0

これは、私が取った高度なWindowsデバッグブックからのものです。最後に向かって漠然としているので、何を意味するのかわかりませんが、基本的には次のとおりです。

ヒープ スペースを割り当てる場合、ヒープの内容は必ずしも事前に決定されているとは限らないため、割り当てられたスペースを適切に使用できます。たとえば、1 メガバイトのヒープ メモリを割り当て、そのスペースに512k またはデータ、つまり、割り当てられたヒープの半分をコミットし、さらに 512k を空けることを意味します。ヒープ割り当てを明示的に 1024k に設定しているため、そのメモリは引き続き OS に使用されていると表示されますが、次回同じスペースを使用するときは、前回使用した 512k より多かれ少なかれ使用できます。使用のために割り当てられます。特定の時点で使用する量がコミットであり、確保した量が割り当てです。

これはすべて非常に単純化されているため、次のようなソースを読むことをお勧めします。

メモリとその C++ での使用法を始めるための良い情報源として。

考えられる具体的または詳細なことがあれば (質問が少し不明確です)、お知らせください。できるだけ早くご連絡いたします。

于 2013-11-03T12:59:42.193 に答える
0

いいえ。割り当てられたブロックは、コミットされたメモリの一部です。

于 2013-11-03T12:49:50.183 に答える