Поддержка Large-Page

Поддержка больших страниц позволяет серверным приложениям устанавливать области памяти больших страниц, что особенно полезно в 64-разрядной версии Windows. Для каждого перевода больших страниц используется один буфер преобразования внутри ЦП. Размер этого буфера обычно на три порядка больше, чем размер собственной страницы; это повышает эффективность буфера преобразования, что может повысить производительность часто используемой памяти.

В следующей процедуре описывается использование поддержки больших страниц.

Использование поддержки больших страниц

  1. Получите привилегию SeLockMemoryPrivilege , вызвав функцию AdjustTokenPrivileges . Дополнительные сведения см. в разделах Назначение привилегий учетной записи и Изменение привилегий в токене.
  2. Получите минимальный размер большой страницы, вызвав функцию GetLargePageMinimum .
  3. Включите значение MEM_LARGE_PAGES при вызове функции VirtualAlloc . Размер и выравнивание должны быть кратными минимуму большой страницы.

При написании приложений, использующих память на больших страницах, учитывайте следующее:

  • После длительной работы системы может быть трудно получить области памяти на больших страницах, так как физическое пространство для каждой большой страницы должно быть непрерывным, но память может быть фрагментирована. Выделение больших страниц в этих условиях может значительно повлиять на производительность системы. Поэтому приложения должны избегать повторяющихся выделений больших страниц и вместо этого выделять все большие страницы один раз при запуске.
  • Память всегда доступна для чтения и записи и не может быть доступна для чтения (всегда находится в физической памяти).
  • Память является частью частного байта процесса, но не является частью рабочего набора, так как рабочий набор по определению содержит только страничные памяти.
  • На выделение больших страниц не распространяются ограничения заданий.
  • Память большой страницы должна быть зарезервирована и зафиксирована как одна операция. Другими словами, большие страницы нельзя использовать для фиксации ранее зарезервированного диапазона памяти.
  • WOW64 в системах на основе Intel Itanium не поддерживает 32-разрядные приложения, использующие эту функцию. Приложения следует перекомпилировать как собственные 64-разрядные приложения.