compatibilidad con Large-Page

La compatibilidad con páginas grandes permite a las aplicaciones de servidor establecer regiones de memoria de página grande, que es especialmente útil en Windows de 64 bits. Cada traducción de página grande usa un único búfer de traducción dentro de la CPU. El tamaño de este búfer suele ser tres órdenes de magnitud mayores que el tamaño de página nativo; esto aumenta la eficacia del búfer de traducción, lo que puede aumentar el rendimiento de la memoria a la que se accede con frecuencia.

En el procedimiento siguiente se describe cómo usar la compatibilidad con páginas grandes.

Para usar la compatibilidad con páginas grandes

  1. Obtenga el privilegio SeLockMemoryPrivilege mediante una llamada a la función AdjustTokenPrivileges . Para obtener más información, consulte Asignación de privilegios a una cuenta y Cambio de privilegios en un token.
  2. Recupere el tamaño mínimo de página grande llamando a la función GetLargePageMinimum .
  3. Incluya el valor MEM_LARGE_PAGES al llamar a la función VirtualAlloc . El tamaño y la alineación deben ser un múltiplo del mínimo de página grande.

Al escribir aplicaciones que usan memoria de página grande, tenga en cuenta las consideraciones siguientes:

  • Las regiones de memoria de página grande pueden ser difíciles de obtener después de que el sistema se haya estado ejecutando durante mucho tiempo porque el espacio físico de cada página grande debe ser contiguo, pero es posible que la memoria se haya fragmentado. La asignación de páginas grandes en estas condiciones puede afectar significativamente al rendimiento del sistema. Por lo tanto, las aplicaciones deben evitar realizar asignaciones repetidas de páginas grandes y, en su lugar, asignar todas las páginas grandes una vez al inicio.
  • La memoria siempre es de lectura/escritura y no paginable (siempre residente en memoria física).
  • La memoria forma parte del proceso de bytes privados, pero no forma parte del espacio de trabajo, ya que el conjunto de trabajo por definición solo contiene memoria paginable.
  • Las asignaciones de páginas grandes no están sujetas a límites de trabajo.
  • La memoria de página grande debe reservarse y confirmarse como una sola operación. En otras palabras, las páginas grandes no se pueden usar para confirmar un intervalo de memoria reservado previamente.
  • WOW64 en sistemas basados en Intel Itanium no admite aplicaciones de 32 bits que usan esta característica. Las aplicaciones se deben volver a compilar como aplicaciones nativas de 64 bits.