Obsługa Large-Page
Obsługa dużych stron umożliwia aplikacjom serwerowym ustanawianie dużych regionów pamięci, co jest szczególnie przydatne w 64-bitowych systemach Windows. Każde tłumaczenie na dużą stronę używa pojedynczego buforu tłumaczenia wewnątrz procesora CPU. Rozmiar tego buforu jest zwykle trzy rzędy wielkości większe niż rozmiar strony natywnej; zwiększa to wydajność buforu tłumaczenia, co może zwiększyć wydajność dla często używanej pamięci.
W poniższej procedurze opisano sposób korzystania z obsługi dużych stron.
Aby korzystać z obsługi dużych stron
- Uzyskaj uprawnienie SeLockMemoryPrivilege, wywołując funkcję AdjustTokenPrivileges. Aby uzyskać więcej informacji, zobacz Przypisywanie uprawnień do konta i zmienianie uprawnień w tokenie.
- Pobierz minimalny rozmiar dużej strony, wywołując funkcję GetLargePageMinimum.
- Dołącz wartość MEM_LARGE_PAGES podczas wywoływania funkcji VirtualAlloc. Rozmiar i wyrównanie musi być wielokrotnym minimalnym rozmiarem dużej strony.
Podczas pisania aplikacji korzystających z pamięci na dużą stronę należy pamiętać o następujących kwestiach:
- Regiony pamięci na dużą stronę mogą być trudne do uzyskania po uruchomieniu systemu przez długi czas, ponieważ miejsce fizyczne dla każdej dużej strony musi być ciągłe, ale pamięć mogła zostać rozdrobniona. Przydzielanie dużych stron w tych warunkach może znacząco wpłynąć na wydajność systemu. W związku z tym aplikacje powinny unikać wielokrotnego przydzielania dużych stron, a zamiast tego przydzielać jednocześnie wszystkie duże strony podczas uruchamiania.
- Pamięć jest zawsze odczytywana/zapisywalna i niestronicowalna (zawsze znajduje się w pamięci fizycznej).
- Pamięć jest częścią procesów prywatnych bajtów, ale nie jest częścią zestawu roboczego, ponieważ zestaw roboczy według definicji zawiera tylko pamięć stronicowalne.
- Alokacje dużych stron nie podlegają limitom zadań.
- Pamięć na dużą stronę musi być zarezerwowana i zatwierdzona jako pojedyncza operacja. Innymi słowy, nie można użyć dużych stron do zatwierdzenia wcześniej zarezerwowanego zakresu pamięci.
- WOW64 w systemach opartych na technologii Intel Itanium nie obsługuje aplikacji 32-bitowych korzystających z tej funkcji. Aplikacje powinny zostać ponownie skompilowane jako natywne aplikacje 64-bitowe.