Windows 11: jak wyłączyć kompresję pamięci?

Jak wyłączyć kompresję pamięci?
Jak wyłączyć kompresję pamięci?
Źródło zdjęć: © Pixabay
Kamil J. Dudek

16.05.2024 06:30, aktual.: 16.05.2024 08:28

Windows kompresuje zawartość pamięci RAM, aby więcej w niej zmieścić i uniknąć stosowania pliku wymiany. Wynika to z założenia, że operacje dyskowe zawsze będą wolniejsze niż obciążanie procesora. Dlatego lepsza jest kompresja niż stronicowanie.

W przypadku posiadania dużej ilości pamięci RAM, automatyczne udogodnienia oraz stronicowanie mogą zacząć przeszkadzać, zamiast pomagać w wydajności. Kontrola nad systemowym menedżerem pamięci jest bardzo ograniczona. Windows przechowuje jego konfigurację w gałęzi Rejestru "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management", ale ustawienia dotyczą głównie automatycznych adaptacji i rozmiarów plików.

Ograniczone możliwości

Dokumentacja przełącznika FeatureSettings, potencjalnie kontrolującego zachowanie menedżera, nie jest dostępna. Niektóre tajemnicze opcje pojawiają się czasem jako mitygacje dla problemów typu Meltdown i Spectre. Istnieje tylko kilka dostępnych mechanizmów kontroli nad zarządzaniem pamięcią:

  • całkowite wyłączenie stronicowania (usunięcie pliku wymiany)
  • wyłączenie wstępnego ładowania do pamięci (prefetch)
  • wyłączenie wstępnego uruchamiania (prelaunch)
  • łączenie stron pamięci RAM (page combining)
  • kompresja wykorzystywanej pamięci RAM

Dalsza część artykułu pod materiałem wideo

Całkowite wyłączenie pliku wymiany może być niewskazane, między innymi ze względu na zgodność. Podobnie ostrożnie należy podchodzić do wyłączania mechanizmów prefetch/preload, które mimo pozornej nieprzydatności mogą mieć istotny wpływ na prędkość uruchamiania aplikacji niestartujących w tle (choć istotność metody prefetch wciąż spada, ze względu na zmianę natury pracy z dzisiejszymi komputerami).

Wyłączenie kompresji

Najmniej inwazyjne wydaje się wyłączenie kompresji pamięci - acz nie wolno zapomnieć, że wpływ wyłączenia go na wzrost wydajności może być niezauważalny lub trudny do oszacowania. Jest to wszystko efektem braku kontroli nad wykorzystywaniem pliku wymiany w Windows - funkcjonalności eksponowanej w systemach linuksowych pod nazwą "swappiness". W Windows możemy zmienić rozmiar, lokalizację i obecność pliku wymiany.

Włączona kompresja
Włączona kompresja © dobreprogramy | Kamil Dudek

O tym, czy kompresja pamięci jest włączona, dowiemy się w sekcji Pamięć w Menedżerze Zadań. Podaje on wartość poddaną kompresji - zazwyczaj jest ona dość niska: RAM, z definicji bardzo różnorodny, słabo się kompresuje. Ale niska prędkość dysków w porównaniu z procesorem i RAM-em może czynić nawet tak skromny zysk uzasadnionym. Aby wyłączyć kompresję pamięci, należy skorzystać z systemowej kolekcji MMAgent w środowisku PowerShell. Następujące polecenie:

Disable-MMAgent -MemoryCompression

Doprowadzi do zatrzymania procesu kompresji pamięci. Skompresowana zawartość nie będzie już kompresowana ponownie po zmianach, podobnie jak nowa pamięć. Wkrótce potem ilość raportowanej pamięci skompresowanej spadnie do zera. Jeżeli wyłączenie kompresji nie zwiększy wydajności lub pogorszy ją (co zdecydowanie może mieć miejsce w zauważalny sposób na systemach gdzie jest jej mniej niż 8GB!), można włączyć kompresję ponownie, poleceniem:

Enable-MMAgent -MemoryCompression

Jeżeli wyłączenie kompresji pamięci oraz pliku wymiany nie przekładają się na ogólny wzrost wydajności komputera z dużą ilością RAM-u, możliwe jest, że jest to granica wydajności możliwej do osiągnięcia na danym sprzęcie i optymalizacji należy szukać gdzie indziej. W tym celu potrzebne będzie bardziej zaawansowane profilowanie, przy którym warto mieć na uwadze, że rzadko da się sensownie opisać wydajność całego komputera jedną liczbą.

Kamil J. Dudek, współpracownik redakcji dobreprogramy.pl

Programy

Zobacz więcej
Oceń jakość naszego artykułuTwoja opinia pozwala nam tworzyć lepsze treści.
Wybrane dla Ciebie
Komentarze (85)