【发布时间】:2011-03-13 12:24:58
【问题描述】:
标题几乎说明了一切:有没有办法在 windows 下获得最低的空闲虚拟内存地址?我应该补充一点,我在程序开始时对这些信息很感兴趣(在任何动态内存分配完成之前)。
我为什么需要它:尝试在 Windows 下构建 malloc 实现。如果不可能,我将不得不在将 NULL 作为第一个参数时返回任何 VirtualAlloc()。虽然您希望它做一些明智的事情,例如在可用的底部分配内存,但不能保证。
【问题讨论】:
-
为什么 malloc 实现需要这些信息?
-
如果在某一时刻我必须进行非常大的分配,最好将先前的分配分配到地址空间的低端而不是中间。此外,它最大限度地提高了通过 VirtualAlloc() 调用获得的页面之后的页面也是空闲的概率,并且可以通过将来调用 VirtualAlloc() 来获得,从而有助于防止碎片。
标签: memory-management dynamic-memory-allocation virtual-memory virtualalloc