Open棟梁Project - マイクロソフト系技術情報 Wiki
ヒープ = ヒープ・マネージャは予めある程度の仮想アドレス空間を予約しておき、
プログラムから要求がされ次第、その予約された仮想アドレス空間に物理メモリを確保する。
このため、仮想アドレス空間に異なる小さな物理メモリを多数割り当てるときに性能が良い。
詳細についてはインサイド Microsoft Windows 第4版のヒープマネージャの概論を参照。
Windows Server 2008からは、ヒープ・マネージャは低断片化ヒープ
LFH(Low Fragmentation Heap)がデフォルトでONに設定されている。
仮想アドレス空間のブロックのサイズの大小が影響して、断片化が問題になる。 このため実際にコミットできるのは仮想アドレス空間の半分程度になることもある。
ちなみに、殆どのメモリ確保APIは内部で「HeapAlloc?」
を使用してヒープ・マネージャによりメモリを確保している。
(詳しくは、仮想アドレス空間の確保のAPIを参照)