我读过英特尔芯片支持高达1 GB的虚拟内存页面大小。使用带有MEM_LARGE_PAGES的VirtualAlloc可以获得2MB的页面。有没有办法获得不同的页面大小?我们目前正在使用Server 2008 R2,但计划升级到Server 2012。
答案 0 :(得分:3)
看起来不像,Large Page Support docs没有提供定义大页面大小的机制。您只需要进行multiples of the minimum large page size具有大小(如果明确请求,则为对齐)的分配。
我认为从理论上讲,Windows可以在内部实现多个大页面大小(API函数只能告诉您最小大小),但它们不会在API级别公开它。在实践中,我预计越来越大的页面会有越来越少的回报;当你已经将TLB使用量减少了几个数量级时,TLB缓存未命中的开销就变得非常重要。