Prefetch i Superfetch na dyskach HDD i SSD

Microsoft ciągle poprawia, kombinuje i niejednokrotnie testuje swoje sposoby na przyspieszenie i usprawnienie systemu Windows. Windows 10 według moich obserwacji jest i tak szybszy niż Windows 7 czy 8, chociaż w sieci krąży tysiące plotek jako, iż Windows 10 jest bardziej zasobożerny i ma masę zbędnych funkcji.

Racja, iż Windows 10 ma niektóre funkcje włączone standardowo, które są zasobożerne i potrafią spowolnić system. Na szczęście możemy w dosyć łatwy sposób je wyłączyć. W tym wpisie zajmiemy się takim czymś jak „Prefetch” i „Superfetch” (SysMain)

Czym jest Prefetch?

Jest to funkcja, która poddaje analizie uruchamiane usługi i programy, a także analizuje uruchamiane aplikacje (jak często, kiedy itp.). Na podstawie analizy tworzy listę aplikacji/usług (skrótów, pliki *.pf), które mają uruchamiać się w pierwszej kolejności oraz sama ta lista ma odciążyć CPU od „myślenia” co pierwsze uruchomić. To tak napisane dosyć łopatologicznie, ale nie chcę się zagłębiać w szczegóły działania Prefetch.

Prefetch dla HDD

Prefetch jest standardowo włączone i dobrze, gdyż opcja ta po jakimś czasie przyspiesza uruchamianie systemu, jeśli posiadamy dysk HDD, ale…
… oczywiście jest, ale, które polega na tym, że jeśli na starcie systemu uruchamiamy kilkanaście innych programów każdego dnia to taka „lista usług i aplikacji”, które mają pierwszeństwo do uruchamiania, staje się błędna, przez co start systemu może się wydłużyć.

Mając dysk HDD, opcję Prefetch zostaw włączoną, jeśli każdego dnia (lub w większości uruchomień komputera) w czasie uruchamiania sprzętu korzystasz z tych samych aplikacji. Możesz od czasu do czasu wyczyścić, ale pamiętajże start systemu, może z początku trwać znacznie dłużej.

Prefetch dla SSD

Z moich obserwacji wynika, iż funkcja ta jest zbędna dla dysku SSD, gdyż te działają na innej zasadzie niż talerzowce (dyski HDD) i wyłączenie tej opcji nie ma wpływu na uruchamianie systemu. Wyłączając Prefetch, możemy przy okazji zyskać kilka MB miejsca na dysku.

Wyłączanie Prefetch

W celu wyłączenia Prefetch należy uruchomić rejestr, wykonując wcześniej jego kopię zapasową – Kopia zapasowa rejestru

W rejestrze przechodzimy kolejne po gałęziach

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters

Po prawej stronie z listy kluczy wybieramy „EnablePrefetcher” i klikając dwukrotnie, modyfikujemy jego zawartość.
Do wyboru mamy cztery opcje.

0 – prefetch wyłączony,
1 – usługa włączona dla startu systemu,
2 – usługa włączona dla uruchamianych programów.
3 – wartość domyślna – usługa odpowiada zarówno za system jak i programy.

Wybieramy wartość, która nam odpowiada (dla dysku SSD proponuję „0” a dla HDD zostawić „3”).

W celu zatwierdzenia opcji klikamy OK i uruchamiamy ponownie komputer.

Czym jest Superfetch (SysMain) ?

Superfetch to próba przyspieszenia systemu poprzez rezerwowanie pamięci RAM na przyszłe uruchomione programy, które system próbuje przewidzieć. Druga sprawa Superfetch ma związek także z indeksowaniem i buforowaniem CPC oraz dane aplikacji i systemu, przez co nieużywany komputer może być obciążony przez tę właśnie funkcję.

Superfetch dla HDD i SSD

Zarówno dla dysków HDD jak i SSD proponuję tę opcję wyłączyć, oszczędzając tym samym baterię (w przypadku laptopa), RAM oraz co jest ważne, odciążając czasami znacząco dysk twardy i procesor.

Wyłączanie Superfetch (SysMain)

Aby wyłączyć Superfetch najlepiej, abyśmy wykonali dwie rzeczy,

Pierwszą z nich jest wyłączenie usługi SysMain. Kliknij prawym przyciskiem myszy na ikonkę „Ten komputer” (Brak ikonki? Zobacz Jak ustawić ikonki na pulpicie) i z dostępnych opcji wybierz „Zarządzaj”.

Teraz z nowo pokazanego okna, z lewej strony wybierz opcję „Usługi i aplikacje”, a następnie „Usługi”. Z listy po prawej stronie wyszukaj „SysMain” i kliknij dwukrotnie na usługę.

Z opcji „Typ uruchomienia” wybierz „Wyłączony”, zatwierdź za pomocą „Zastosuj” i „OK”.

Druga rzecz, jaką powinniśmy wykonać to zmienić wartość „EnableSuperfetch” w gałęzi

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters

EnableSuperfetch ustawiamy na 0.

Jeśli nie ma takiego klucza, tworzymy go, klikając prawym przyciskiem myszy na puste miejsce po prawej stronie, wybierając z dostępnych opcji „Nowy” – „Wartość DWORD (32 – bitowa)”. Nazywamy „EnableSuperfetch” (bez cudzysłowu oczywiście), klikamy ENTER. Klikamy dwukrotnie na stworzony klucz, wybieramy System szesnastkowy i wpisujemy 0.

To wszystko, uruchamiamy ponownie komputer.