Dziś przyjrzymy się funkcji wstępnego ładowania do pamięci. Funkcja ta została wprowadzona ponad 20 lat temu jeszcze w Windows XP. Czy nadal jest sens jej używać?
Jak już wcześniej wspomnieliśmy wstępne ładowanie do pamięci zostało wprowadzone w Windows XP. Jak to działa?
Windows analizuje programy uruchamiane wraz z systemem i tworzy w folderze \Windows\Prefetch specjalne pliki *.pf.
Te małe pliki zawierają informacje o danej aplikacji i częstotliwości jej uruchamiania. Pliki PF zawierają między innymi:
- Nazwę programu(pliku exe)
- Ścieżkę
- Daty utworzenia, modyfikacji i dostępu
- Ilość uruchomień
- Daty ostatnich uruchomień
Na podstawie plików PF system podczas uruchamiania ładuje wstępnie do pamięci dany program.
Wśród nieprawdziwych informacji na temat działania tej funkcji można się często natknąć na dwie:
- do folderu prefetch są kopiowane aplikacje w celu ich szybszego ładowania
- usunięcie zawartości folderu prefetch zwolni nawet kilka gigabajtów z dysku
Obie nie są prawdziwe. Pierwsza wynika z tego o czym wspominaliśmy wcześniej. Pliki PF nie są aplikacjami i zawierają jedynie informacje o uruchamianiu aplikacji.
Druga z kolei to wytwór czyjejś wyobraźni. Folder prefetch w zależności od wersji systemu zajmuje od kilku do kilkunastu megabajtów. Czy może urosnąć do niekontrolowanych rozmiarów? Nie. Dzieje się tak, gdyż funkcja ta ma odgórny limit ilości plików PF jakie mogą zostać utworzone. W systemach XP-7 limit wynosi 128 plików, w nowszych 1024.
Wiemy już, że funkcja ani nie kopiuje aplikacji do folderu, ani nie tworzy gigabajtów na dysku. Czy jest jednak sens jej używać i czy powinniśmy usuwać pliki PF?
Jednym z argumentów mających przemawiać za wyłączeniem tego mechanizmu jest fakt, iż obecne dyski ssd są na tyle szybkie, że mechanizm ten nie jest potrzebny. I tak i nie. Nawet dysk SSD może w pewnych przypadkach obniżyć swoją szybkość, a jeśli normalnie nie widać różnicy, to nie ma sensu niczego ruszać.
Jest jednak jeden przypadek, kiedy usunięcie plików może przynieść korzyści. Jeśli instalujemy często nowe programy, korzystamy z nich, potem odinstalowujemy i instalujemy kolejne, może dojść do pewnych problemów. W folderze prefetch mogą znajdować się nadal wpisy o nieistniejących aplikacjach. Wtedy system może wydłużyć czas uruchamiania oraz zwiększyć zapotrzebowanie na pamięć Ram. Wynika to z faktu niepotrzebnego przeszukiwania plików. Podobna sytuacja może się pojawić, gdy pliki PF ulegną uszkodzeniu.
Co wtedy zrobić? Najlepiej usunąć pliki PF z folderu prefetch. Po następnym uruchomieniu systemu sytuacja powinna wrócić do normy, choć początkowo system może uruchamiać się nieco dłużej niż zwykle.
Jeśli z jakiegoś powodu zechcemy wyłączyć prefetch, musimy zrobić to ręcznie przez edytor rejestru(regedit.exe). Najlepiej przed rozpoczęciem wykonać kopię zapasową systemu.
Edytor rejestru musimy uruchomić z uprawnieniami administratora. W edytorze odnajdujemy klucz
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters
W nim powinniśmy zobaczyć wartość o nazwie EnablePrefetcher
EnablePrefetcher może przyjmować następujące wartości:
0 - Wyłączony
1 - Włączone dla aplikacji
2 - Włączone dla plików ładowanych podczas uruchamiania systemu
3 - Włączone dla aplikacji i plików ładowanych podczas uruchamiania systemu. Ta opcja jest domyślna.
Jednym z argumentów mających przemawiać za wyłączeniem wspomnianej funkcji jest fakt, iż dyski SSD są wystarczająco szybkie, a dodatkowe zapisy skracają żywotność dysku. O ile w teorii argumenty są słuszne, to w praktyce kilka dodatkowych zapisów i tak drastycznie życia dysku nie skróci. Wydajność zaś zależy od wielu czynników i najlepiej testy przeprowadzić samemu.