TIP#390: Co je to Superfetch a Prefetch. A jak to zakázat (Windows 7, 8 ale hlavně 10)

Superfetch a Prefetch najdete ve Windows 10, 8 a 7 a jde o funkčnost, která ukládá aplikace (komprimovaně) v paměti tak, aby je bylo možné rychleji použít (superfetch) a připravuje si je na disku (prefetch). Jak ale praxe ukazuje, tak zákaz Superfetche může ve skutečnosti pomoci. Ale o tom až později.

Superfetch přitom dělá to, že odhaduje, jaké aplikace budete používat a ty před připravuje v paměti. Superfetch bude také většinou moci za to, že proces jménem Systém bude poměrně velký (což ale nemusí být nijak negativní vlastnost).

Prefetch je paměťové nenáročný, ale může být zodpovědný za zbytečné používání disku – to co dělá poznáte ve složce \Windows\prefetch protože si tam odkládá aplikace, které často používáte.

2016-01-25 07_24_52-Prefetch.png

Většinou je funkční Prefetch/Superfetch užitečná funkčnost, v některých případech ale může být na škodu – může způsobovat potíže ve hrách, ale i v některých dalších programech. A může vest i zvýšeným nárokům na paměť, které ve spojení s ochotou Windows 10 zbytečně používat odkládací soubor nemusí mít zcela dobrý výsledek.

Jak vypnout Superfetch

Superfecth můžete zastavit a vypnout (a také později kdykoliv zapnout a spustit) v services.msc (nejsnazší je spustit příkazovou řádku a tam spustit services.msc). V přehledu služeb (Services) stačí najít Superfetch a pomoci Stop zastavit a poté můžete vybrat Zakázáno/Disabled. Tím se Supefetch už nespustí.

Superfetch můžete kdykoliv zastavit a znovu spustit, nic se tím zkazit nedá, takže se nebojte experimentovat. Zakázat Superfetch/prefetch se mimochodem vyplatí pokud máte SSD – Windows 10 by to ale měly udělat automaticky, pokud zjistí přítomnost tohoto disku.

Jak vypnout Prefetch

Vypnutí, respektive nastavení Prefetch je možné v Registry, tam najdete HKEY_LOCAL_MACHINE -> SYSTEM -> CurrentControlSet > Control > Session Manager -> MemoryManagement a tam PrefetchParameters

Zde byste měli najít EnablePrefetcher (pokud tam není, jde o hodnotu typu DWORD). Má čtyři možné hodnoty

  • 0 zakazuje Prefetch
  • 1 povolí prefetch pro spouštěné programy
  • 2 povolí prefetch při startu systému
  • 3 povolí prefetch pro všechno (počáteční nastavení)

Na stejném místě je možné řešit i Superfetch, slouží k tomu obdobná hodnota (DWORD) jménem EnableSuperfetcher a může mít následující hodnoty

  • 0 zakazuje Superfetch
  • 1 povolí pouze pro soubory sloužící startu systému
  • 2 povolí poze pro aplikace
  • 3 povolí jako pro aplikace, tak pro start systému

Poslední co by se vám mohlo hodit je to, že při spouštění programů (aplikací) vyžádat aktivní prefetch pomoci parametru /prefetch:1

2016-01-25 07_26_44-Správce úloh.png

Praktické zkušenosti

Je dobré připomenout, že jak Superfecth, tak Prefetch je vhodné vypnout pokud máte SSD. Tedy pokud to neudělají za vás Windows, které by to možná měly poznat a vypnout. Což vyzkoušet nemohu, SSD je stále jenom v „plánech“ k pořízení si.

Pokud máte klasický stroj? Osobní zkušenost je ta, že vypnutí Superfetch odstranilo neustále rostoucí proces SYSTEM (až 1.5 GB paměti) a tím i nadměrné využití odkládacího souboru. Což vedlo k výraznému snížení využití disku (zejména systémového). Což vedlo k zvýšené ochotě systému reagovat, přestalo praskat v přehrávání zvuku a systém používá o několik GB méně paměti aniž by to mělo negativní dopad na výkon.

Podobný efekt mělo i zrušení odkládacího souboru (virtuální paměti), ale k tomuto řešení bych se vrátil spíše až tak po přidání další paměti. 12 GB se při hraní náročnějších her ((RIFT a GTA V v mém případě) ukazuje jako nedostačující – a zavírat všechno co je otevřené při spuštění hry není praktické. Zbývá ještě to samé vyzkoušet na notebooku (ten má jenom 8 GB RAM).

TIP: Mám pro Windows používat optimalizátory paměti RAM? je dost dobrá otázka. Na kterou je sakra dobré znát správnou odpověď

Reklamy