Condividi tramite


supporto Large-Page

Il supporto di pagine di grandi dimensioni consente alle applicazioni server di stabilire aree di memoria di pagine di grandi dimensioni, particolarmente utili in Windows a 64 bit. Ogni traduzione di pagine di grandi dimensioni usa un singolo buffer di conversione 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 traduzione, che può migliorare le prestazioni per la memoria a cui si accede di frequente.

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

Per usare di supporto di pagine di grandi dimensioni

  1. Ottenere il privilegio SeLockMemoryPrivilege chiamando la funzionediAdjustTokenPrivileges. 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 funzioneGetLargePageMinimum.
  3. Includere il valore MEM_LARGE_PAGES quando si chiama la funzioneVirtualAlloc. Le dimensioni e l'allineamento devono essere un multiplo del minimo di pagina di grandi dimensioni.

Quando si scrivono applicazioni che usano memoria a pagine di grandi dimensioni, 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 grande deve essere contiguo, ma la memoria potrebbe essere frammentata. L'allocazione di pagine di grandi dimensioni in queste condizioni può influire significativamente sulle prestazioni del sistema. Pertanto, le applicazioni devono evitare di eseguire ripetute allocazioni 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 precedentemente riservato.
  • 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.