Large-Page支援
大型頁面支援可讓伺服器應用程式建立大型頁面記憶體區域,這在 64 位 Windows 上特別有用。 每個大型頁面翻譯都會在 CPU 內使用單一轉譯緩衝區。 此緩衝區的大小通常大於原生頁面大小的三個大小順序;這會增加翻譯緩衝區的效率,這可能會提高經常存取記憶體的效能。
下列程式說明如何使用大型頁面支援。
使用大型頁面支援
- 呼叫AdjustTokenPrivileges函式,以取得SeLockMemoryPrivilege許可權。 如需詳細資訊,請參閱 將許可權指派給帳戶 和 變更權杖中的許可權。
- 呼叫 GetLargePageMinimum 函式來擷取最小大型頁面大小。
- 呼叫VirtualAlloc函式時,請包含MEM_LARGE_PAGES值。 大小和對齊必須是大頁最小值的倍數。
撰寫使用大型頁面記憶體的應用程式時,請記住下列考慮:
- 因為每個大型頁面的實體空間必須連續,但記憶體可能已經分散,所以在系統長時間執行之後,可能會很難取得大型頁面記憶體區域。 在這些情況下配置大型頁面可能會大幅影響系統效能。 因此,應用程式應該避免進行重複的大型頁面配置,而是在啟動時一次配置所有大型頁面。
- 記憶體一律為可讀取/寫入,且不可分頁 (一律會固定在實體記憶體) 中。
- 記憶體是進程私用位元組的一部分,但不屬於工作集的一部分,因為依定義的工作集只包含可分頁記憶體。
- 大型頁面配置不受作業限制。
- 大型分頁記憶體必須保留並認可為單一作業。 換句話說,大型頁面無法用來認可先前保留的記憶體範圍。
- Intel Itanium 系統上的 WOW64 不支援使用此功能的 32 位應用程式。 應用程式應該重新編譯為原生 64 位應用程式。