1

我读到英特尔芯片支持高达 1 GB 的虚拟内存页面大小。使用带有 MEM_LARGE_PAGES 的 VirtualAlloc 可以获得 2MB 页面。有没有办法获得不同的页面大小?我们目前使用的是 Server 2008 R2,但计划升级到 Server 2012。

4

1 回答 1

3

看起来不像,大页面支持文档没有提供定义大页面大小的机制。您只需要进行大小为最小大页面大小的倍数的分配(如果明确要求,还需要对齐) 。

我想理论上 Windows 可以在内部实现多个大页面大小(API 函数只告诉您最小大小)是可能的,但它们不会在 API 级别公开它。在实践中,我预计越来越大的页面收益会递减。当您已经将 TLB 使用量减少了几个数量级时,TLB 缓存未命中的开销就不再那么重要了。

于 2016-02-23T00:13:12.150 回答