Windows 有 VirtualAlloc,它允许您保留一个连续的地址空间区域,但实际上并不使用任何物理内存。稍后当您想使用它(或其中的一部分)时,您再次调用 VirtualAlloc 以提交先前保留页面的区域。
这实际上非常有用,但我想最终将我的应用程序移植到 linux - 所以如果我以后不能移植它,我不想使用它。linux有办法做到这一点吗?
编辑 - 用例
我正在考虑分配 4 GB 或类似的虚拟地址空间,但一次只提交 64K。这将为我提供一种零拷贝方式来将数组增加到 4 GB。这很重要,因为典型的双倍数组大小和副本会为非常大的数组引入看似随机的不可接受的延迟。