supporto di Large-Page

Il supporto per pagine di grandi dimensioni consente alle applicazioni server di stabilire aree di memoria di grandi pagine, particolarmente utili in Windows a 64 bit. Ogni conversione di pagine di grandi dimensioni usa un singolo buffer di traduzione all'interno della CPU. Le dimensioni di questo buffer sono in genere tre ordini di grandezza maggiori delle dimensioni della pagina nativa; ciò aumenta l'efficienza del buffer di conversione, che può aumentare le prestazioni per la memoria a cui si accede di frequente.

La procedura seguente descrive come usare il supporto per pagine di grandi dimensioni.

Per usare il supporto di pagine di grandi dimensioni

  1. Ottenere il privilegio SeLockMemoryPrivilege chiamando la funzione AdjustTokenPrivileges . Per altre informazioni, vedere Assegnazione di privilegi a un account e modifica dei privilegi in un token.
  2. Recuperare le dimensioni minime della pagina di grandi dimensioni chiamando la funzione GetLargePageMinimum .
  3. Includere il valore MEM_LARGE_PAGES quando si chiama la funzione VirtualAlloc . Le dimensioni e l'allineamento devono essere un multiplo del valore minimo della pagina di grandi dimensioni.

Quando si scrivono applicazioni che usano memoria di grandi pagine, tenere presenti le considerazioni seguenti:

  • Le aree di memoria di grandi pagine possono essere difficili da ottenere dopo che il sistema è in esecuzione da molto tempo perché lo spazio fisico per ogni pagina di grandi dimensioni deve essere contiguo, ma la memoria potrebbe essere frammentata. L'allocazione di pagine di grandi dimensioni in queste condizioni può influire in modo significativo sulle prestazioni del sistema. Pertanto, le applicazioni devono evitare di eseguire allocazioni ripetute di pagine di grandi dimensioni e allocare invece tutte le pagine di grandi dimensioni una volta all'avvio.
  • La memoria è sempre di lettura/scrittura e non di paging (sempre residente nella memoria fisica).
  • La memoria fa parte dei byte privati del processo, ma non fa parte del working set, perché il working set per definizione contiene solo memoria di paging.
  • Le allocazioni di pagine di grandi dimensioni non sono soggette ai limiti dei processi.
  • La memoria di grandi pagine deve essere riservata e sottoposta a commit come singola operazione. In altre parole, non è possibile usare pagine di grandi dimensioni per eseguire il commit di un intervallo di memoria riservato in precedenza.
  • WOW64 nei sistemi basati su Intel Itanium non supporta applicazioni a 32 bit che usano questa funzionalità. Le applicazioni devono essere ricompilate come applicazioni native a 64 bit.