Large-Page支援

大型頁面支援可讓伺服器應用程式建立大型頁面記憶體區域,這在 64 位 Windows 上特別有用。 每個大型頁面翻譯都會在 CPU 內使用單一轉譯緩衝區。 此緩衝區的大小通常大於原生頁面大小的三個大小順序;這會增加翻譯緩衝區的效率,這可能會提高經常存取記憶體的效能。

下列程式說明如何使用大型頁面支援。

使用大型頁面支援

  1. 呼叫AdjustTokenPrivileges函式,以取得SeLockMemoryPrivilege許可權。 如需詳細資訊,請參閱 將許可權指派給帳戶變更權杖中的許可權
  2. 呼叫 GetLargePageMinimum 函式來擷取最小大型頁面大小。
  3. 呼叫VirtualAlloc函式時,請包含MEM_LARGE_PAGES值。 大小和對齊必須是大頁最小值的倍數。

撰寫使用大型頁面記憶體的應用程式時,請記住下列考慮:

  • 因為每個大型頁面的實體空間必須連續,但記憶體可能已經分散,所以在系統長時間執行之後,可能會很難取得大型頁面記憶體區域。 在這些情況下配置大型頁面可能會大幅影響系統效能。 因此,應用程式應該避免進行重複的大型頁面配置,而是在啟動時一次配置所有大型頁面。
  • 記憶體一律為可讀取/寫入,且不可分頁 (一律會固定在實體記憶體) 中。
  • 記憶體是進程私用位元組的一部分,但不屬於工作集的一部分,因為依定義的工作集只包含可分頁記憶體。
  • 大型頁面配置不受作業限制。
  • 大型分頁記憶體必須保留並認可為單一作業。 換句話說,大型頁面無法用來認可先前保留的記憶體範圍。
  • Intel Itanium 系統上的 WOW64 不支援使用此功能的 32 位應用程式。 應用程式應該重新編譯為原生 64 位應用程式。