Windows: Prave razlike između Prefetchinga i SuperFetch-a

  • Prefetch i SuperFetch su komplementarni Windows mehanizmi koji poboljšavaju performanse upravljanjem pristupom disku i korištenjem RAM-a.
  • Njegov pozitivan uticaj je veći na sistemima sa tvrdim diskovima i/ili malo RAM-a, dok je na modernim SSD diskovima korist ograničenija.
  • U većini slučajeva je poželjno ostaviti obje usluge aktivirane i deaktivirati ih samo radi dijagnosticiranja vrlo specifičnih problema.

Prethodno preuzimanje i SuperFetch

Ako godinama koristite Windows, znate da Microsoft stalno dodaje nove funkcije, promjene u interfejsu i mnogo "nedovršenih" funkcija u obliku widgeta, oglašavanja i bloatwarea. Međutim, postoje ključne funkcije performansi koje se jedva mijenjaju u više od deset godina, kao što su Prefetch i SuperFetch.

U ovom članku ćemo analizirati šta su tačno Prefetch i SuperFetch u Windowsu, koje su razlike između njih, kako funkcionišu na sistemskom i hardverskom nivou , kada ih je razumno onemogućiti i kako to učiniti korak po korak u Windowsu 10 i Windowsu 11. Također ćemo pogledati njihov uticaj na HDD i SSD diskove.

Šta je Prefetch u Windowsu i zašto postoji?

Prefetch je u suštini mehanizam za prethodno učitavanje podataka koji je Microsoft uveo sa Windows XP-om unutar Windows NT kernela i koji je zadržan u Windows Visti, Windowsu 7, Windowsu 10 i Windowsu 11. Njegova svrha je smanjenje vremena pokretanja sistema i vremena otvaranja programa analizirajući koje se datoteke koriste prilikom pokretanja Windowsa i aplikacija.

Kada pokrenete sistem ili program, Windows bilježi koje datoteke, biblioteke i resursi se čitaju s diska . Ove informacije se pohranjuju u male datoteke tragova unutar mape C:\Windows\Prefetch . Svaka često korištena aplikacija ima svoju datoteku s ekstenzijom .PF , u kojoj se pohranjuju obrasci pristupa disku potrebni za ubrzavanje budućih izvršavanja.

Ideja je jednostavna. Umjesto da svaki put čita sve ispočetka, Windows koristi ove Prefetch datoteke kako bi unaprijed predvidio i učitao najvjerovatnije podatke . Ovo olakšava pokretanje Windowsa i otvaranje programa koji zahtijevaju mnogo resursa, posebno na mehaničkim tvrdim diskovima (HDD) gdje je slučajni pristup vrlo spor.

Jedna od najčešćih kritika: Windows stvara tragove čak i privremenih instalatora, kao što je tipičan setup.exe preuzet u mapu Preuzimanja, koji koristite samo jednom, a zatim izbrišete ili premjestite. U tim slučajevima, prethodno snimanje je beskorisno i samo troši zapise na disk i nešto prostora.

Nadalje, s vremenom se mapa Prefetch obično puni unosima za programe koji više nisu instalirani ili starijim verzijama softvera koje ste ažurirali. Sistem dodaje unose za novije verzije. Međutim, ne čisti uvijek starije ostatke s istom lakoćom, tako da tragovi Prefetch-a mogu sadržavati zastarjele informacije koje više nisu korisne.

Windows: Šta je bolje? Razlike između Prefetching-a i SuperFetch-a

Hardversko naspram softverskog prethodnog učitavanja: Nije sve u Windowsu

Termin "pretpreuzimanje" nije ekskluzivan za Microsoft. U računarstvu se koristi za opisivanje bilo koje tehnike koja dovodi podatke ili instrukcije u bržu memoriju prije nego što su potrebni . Ovo se može implementirati u softveru (u operativnom sistemu ili kompajleru) ili direktno u hardveru (unutar procesora).

  • Prethodno preuzimanje softveraNalazimo mehanizme poput Windowsovog vlastitog Prefetcha ili funkcija koje kompajleri dodaju kodu, na primjer dobro poznati __ugrađeno_preuzimanje U GCC-u, kompajler analizira kod i uključuje posebne instrukcije za prethodno traženje podataka iz memorije. Ideja je da kada CPU dođe do tog dijela, podaci su već spremni u kešu.
  • Prethodno preuzimanje hardveraModerni procesori (i Intel i AMD) uključuju namjensko kolo koje detektuje obrasce pristupa memoriji i autonomno odlučuje, koje blokove prebaciti iz RAM-a u L1, L2 ili L3 keš memoriju prije nego što kernel to eksplicitno zatraži. U x86 arhitekturama postoji čak i specifična instrukcija koja se zove PREFETCH dizajniran da obavijesti CPU da predvidi učitavanje određenih adresa.

Ova hardverski zasnovana funkcionalnost je ključna za intenzivne zadatke kao što su montaža videa, simulacije, zahtjevne igre ili naučna opterećenja . Bez ovog predviđanja procesora, latencija od stalnog pristupa glavnoj memoriji bila bi ogromna, a performanse bi drastično pale.

Kako Prefetch funkcioniše interno na Windowsu

Iz perspektive korisnika, Prefetch se doživljava kao brže pokretanje sistema i aplikacije koje se "otvaraju ranije" nakon nekoliko puta korištenja. Ispod haube, u jezgru Windowsa NT djeluje mnogo metodičniji proces.

Svaki put kada se Windows pokrene, sistem bilježi koje usluge, upravljački programi i izvršne datoteke se učitavaju i kojim redoslijedom. Koristi ove informacije za generiranje tragova koji se spremaju kao PF datoteke u mapu Prefetch . Ista stvar se događa kada pokrenete aplikaciju: Windows prati pristup disku tokom prvih nekoliko pokretanja i kreira profil korištenja kako bi ubrzao sljedeća pokretanja.

Kada ponovo pokrenete Windows ili otvorite istu aplikaciju, sistem čita odgovarajuću Prefetch datoteku i predviđa čitanja s diska , grupirajući pristupe i smanjujući skokove glava (na HDD-ovima) ili raspršene zahtjeve (na SSD-ovima). Rezultat, kada sve ispravno radi, je veći osjećaj glatkoće.

Važno je shvatiti da je Prefetch mehanizam "najboljeg napora" : ne radi uvijek ispravno, ne razlikuje savršeno koje programe ćete ponovo koristiti, a ponekad završi s obradom datoteka koje otvorite samo jednom. Tokom godina, Windows je usavršio svoje algoritme, ali to je i dalje tehnologija koja nosi ograničenja dizajna iz XP ere.

S druge strane, sistem automatski upravlja veličinom mape Prefetch . Nije ni potrebno ni preporučljivo periodično brisati njen sadržaj. Windows uklanja starije datoteke kada pređu određeni prag, zadržavajući samo skup datoteka koje predstavljaju vašu redovnu upotrebu.

unaprijed dohvaćeno

Mapa Prefetch: čišćenje, mitovi i najbolje prakse

Do sada ste vjerovatno naišli na tipičnu preporuku na forumima i u videozapisima da " izbrišete sav sadržaj C:\Windows\Prefetch da biste ubrzali Windows ". To je jedan od onih čarobnih recepata koji se ponavljaju godinama i, iskreno, više su mit nego stvarna optimizacija performansi.

Šta se dešava ako izbrišete PF datoteke? Kratkoročno gledano, sistemu treba duže da se pokrene, a često korištene aplikacije se otvaraju sporije jer ste izbrisali informacije koje je Windows koristio za optimizaciju. Sam sistem će postepeno regenerirati ove tragove tokom vremena, ali dok se to ne dogodi, izgubit ćete upravo onu prednost koju ste tražili.

Samo u vrlo specifičnim scenarijima - na primjer, ako primijetite neobično ponašanje nakon većih promjena softvera - možda ima smisla izvršiti jednokratno čišćenje mape Prefetch . Čak i u tim slučajevima, Windows se obično može oporaviti bez vaše intervencije.

Još jedno često pitanje je da li ove datoteke značajno smanjuju vijek trajanja tvrdog diska . Na HDD-ovima, utjecaj je zanemariv u usporedbi s drugim operacijama čitanja i pisanja koje sistem izvodi. Na SSD-ovima, iako se svako pisanje računa, Prefetch nije primarni uzrok habanja. Pregledavanje, instaliranje igara ili kopiranje velikih datoteka generira mnogo veće opterećenje pisanja.

U konačnici, najbolja "optimizacija" u ovom trenutku je obično ostaviti stvari kakve jesu i pustiti Windows da sam upravlja Prefetch-om , osim ako nemate vrlo specifične razloge i znate šta radite.

Šta je SuperFetch (SysMain) i po čemu se razlikuje od Prefetch-a?

Uz Prefetch, Windows uključuje još jednu ključnu komponentu: SuperFetch , preimenovan u SysMain u novijim verzijama Windowsa 10 i Windowsa 11 , ali s istom općom svrhom. Dok se Prefetch više fokusira na pristup disku, SuperFetch se bavi optimizacijom korištenja RAM-a.

Ova usluga radi u pozadini i analizira, danima i sedmicama, koje aplikacije najčešće koristite, u koje vrijeme i u kojem kontekstu . Na osnovu ovih obrazaca, pokušava sačuvati podatke i izvršne datoteke tih programa u RAM-u tako da kada ih otvorite, oni su već učitani i reagiraju gotovo trenutno.

Na primjer, ako svaki dan prilikom pokretanja računara pokrećete preglednik, klijent e-pošte i uredski paket, SuperFetch će naučiti ovo ponašanje i unaprijed učitati te komponente u memoriju nakon što se prijavite. Ideja je eliminirati osjećaj čekanja pri otvaranju često korištenog softvera.

Ključna razlika u odnosu na Prefetch je u tome što ovaj drugi prvenstveno funkcioniše tako što sprema tragove na disk i organizuje pristup. SuperFetch pokušava da maksimalno iskoristi dostupnu RAM memoriju, popunjavajući je aplikacijama koje smatra najkorisnijim za vas u bilo kojem trenutku.

Vrijedi napomenuti da je SuperFetch posebno koristan na sistemima s puno slobodne RAM memorije , jer može unaprijed učitati mnoge aplikacije bez opterećenja memorije. Na mašinama s ograničenom RAM memorijom ili programima koji zahtijevaju puno resursa, ova "pretjerana revnost" može imati negativne posljedice, što dovodi do povećanog straničenja ili čak zastoja sistema ako je sistem prisiljen brzo osloboditi memoriju.

superfetch

Prefetch vs SuperFetch: praktično poređenje

Da bismo bolje razumjeli kako se nadopunjuju i razlikuju, korisno je sažeti pristupe Prefetch i SuperFetch :

  • S jedne strane, Prefetch se fokusira na ubrzavanje pokretanja sistema i početnog učitavanja aplikacijaViše se fokusira na aspekt pohrane, optimizirajući pristup i grupirajući čitanja, na osnovu toga koje se datoteke čitaju s diska.
  • Sa druge strane, SuperFetch (SysMain) koristi slobodnu RAM memoriju da ima unaprijed učitane najvjerovatnije aplikacije, održavajući ih "toplim" čak i kada nisu vidljivo otvorene. Njegovo polje djelovanja je upravljanje srednjoročnom memorijom.

Obje tehnologije su dizajnirane s naglaskom na tradicionalne mehaničke tvrde diskove , gdje je svako smanjenje brzine nasumičnog čitanja predstavljalo značajnu razliku. S porastom SSD-ova, mnoge od tih optimizacija su izgubile dio svog utjecaja jer sam hardver sada nudi vrlo velike brzine pristupa.

Uprkos tome, Windows 10 i Windows 11 i dalje uključuju i koriste i Prefetch i SuperFetch, prilagođavajući svoje ponašanje do određene mjere ovisno o tome da li detektuju SSD ili HDD diskove , iako ne uvijek tako agresivno kao što bi neki korisnici željeli.

Kako omogućiti ili onemogućiti prethodno preuzimanje u Windowsu

Ako, nakon što ste odmjerili prednosti i nedostatke, želite izmijeniti način rada Prefetch-a , Windows nudi direktnu kontrolu putem sistemskog registra. Ova postavka nije vidljiva u uobičajenim menijima, stoga postupajte s oprezom i vršite samo neophodne promjene.

Konfiguracija je u ključu:

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

Unutar te rute, vidjet ćete vrijednost pod nazivom EnablePrefetcher (ili EnablePrefetch u nekim starijim vodičima), koja određuje ponašanje servisa. Njene moguće vrijednosti su sljedeće:

  • 0 = Prethodno preuzimanje je potpuno onemogućeno.
  • 1 = Optimizirano je samo pokretanje aplikacije.
  • 2 = Optimizovan je samo proces pokretanja sistema.
  • 3 = Optimizacija i pokretanja i aplikacija (preporučena i zadana vrijednost).

Na sistemima sa mehaničkim tvrdim diskovima (HDD) , uobičajeno je da se vrijednost drži na 3 , jer to rezultira primjetnim poboljšanjem vremena učitavanja. Na mašinama sa SSD diskovima , neki korisnici preferiraju da je postave na 0 da bi je deaktivirali, tvrdeći da je disk već dovoljno brz i da se time izbjegavaju dodatne operacije pisanja.

Microsoft i većina stručnjaka zauzimaju konzervativniji stav: onemogućavanje SSD prefetcha obično nije potrebno jer sistem već primjenjuje određena interna podešavanja, a korist od njegovog isključivanja je u praksi minimalna. Samo u vrlo specifičnim dijagnostičkim slučajevima ili visoko prilagođenim okruženjima isplati se podešavati ovu postavku.

Kako omogućiti ili onemogućiti SuperFetch (SysMain) u Windowsu 10 i 11

Za upravljanje SuperFetchom (ili SysMainom, ovisno o vašoj verziji Windowsa), više ne morate koristiti Registar, već konzolu System Services. Odatle možete prilagoditi tip pokretanja ili ga potpuno onemogućiti ako vam uzrokuje više problema nego što ih rješava.

Opći koraci za starije verzije Windowsa 10 gdje se još uvijek pojavljivao kao SuperFetch su:

  1. Pritisnite kombinaciju tastera Windows + R da otvorite prozor Run.
  2. pisati services.msc i pritisnite Enter.
  3. Na listi usluga potražite unos pod nazivom Super dohvat.
  4. Dvaput kliknite na njega da biste otvorili njegova svojstva.
  5. U odjeljku "Vrsta pokretanja", odaberite željenu opciju (na primjer, „Onemogućeno“ ako je želite isključiti).
  6. Kliknite na aplicar a zatim u prihvatiti da biste spremili promjene.

Od ažuriranja Windowsa 10 verzije 1809 i u Windowsu 11, servis je preimenovan u SysMain , iako je njegova funkcija praktično ista. Postupak je identičan; samo ćete morati pronaći SysMain na listi servisa i promijeniti mu tip pokretanja na "Onemogućeno" ako ga želite isključiti.

Onemogućavanje ove funkcije može biti korisno ako primijetite da na sistemima s ograničenom RAM memorijom , intenzivno korištenje SysMain-a uzrokuje kašnjenje, stalnu upotrebu diska ili probleme tokom igranja. Na modernim mašinama sa 16 GB ili više RAM-a i SSD-om, mnogi korisnici radije ostavljaju ovu funkciju omogućenom, jer je prethodno učitavanje memorije obično više korisno nego štetno.

Prefetch, SuperFetch i utjecaj na HDD i SSD

Jedno od najvećih pitanja posljednjih godina vrti se oko toga da li ima smisla održavati Prefetch i SuperFetch na sistemima sa SSD diskovima . Ovi diskovi, bez pokretnih dijelova, nude mnogo brži pristup podacima od starijih HDD diskova, što dovodi u pitanje potrebu za određenim optimizacijama dizajniranim za spore diskove.

  • U a Tradicionalni tvrdi diskGlava za čitanje/pisanje mora se fizički kretati preko ploča kako bi čitala podatke koji se nalaze u različitim područjima. Prefetch i SuperFetch su u tom pogledu veoma korisni. Smanjuju preskakanje teksta, grupno čitanje i unaprijed učitavaju ono što vam je vjerovatno potrebno., umjesto da skačete s jedne na drugu stranu svaki put kada nešto otvorite.
  • U a SSDMeđutim, situacija se mijenja. Vrijeme slučajnog pristupa je toliko kratko da će se u mnogim scenarijima aplikacije vrlo brzo učitavati čak i bez tih algoritama. Zbog toga neki vodiči preporučuju onemogućavanje Prefetch i/ili SuperFetch na SSD-ovima, tvrdeći da oni samo povećavaju broj pisanja i potrošnju resursa bez ikakvog primjetnog poboljšanja.

Stvarnost je obično negdje između: Windows detektuje da je pohrana SSD i interno prilagođava način na koji koristi ove funkcije . U većini slučajeva, ostavljanje tih funkcija omogućenim neće ništa pokvariti niti uništiti vaš SSD za četiri dana. Čak i tako, u vrlo ograničenim konfiguracijama ili ako istražujete određeni uzrok trzanja, možda bi imalo smisla pokušati ih privremeno onemogućiti kako biste vidjeli hoće li to poboljšati performanse.

U praksi: HDD-ovi sa malo RAM-a: najbolje je ostaviti Prefetch i SuperFetch omogućene . SSD-ovi sa puno RAM-a: možete ih ostaviti omogućene bez brige i razmotriti njihovo isključivanje samo ako dijagnosticirate vrlo specifičan problem s performansama.

Prefetch i SuperFetch u Windowsu, zajedno s CPU prefetchom, formiraju skup tehnika osmišljenih za maskiranje latencije memorije i pohrane . Razumijevanje načina na koji rade i kada ih treba prilagoditi omogućava vam da fino podesite svoj sistem bez pribjegavanja tipičnim čudotvornim trikovima koji obećavaju ubrzanje Windowsa neselektivnim brisanjem mapa ili onemogućavanjem usluga.

vaša Windows licenca će uskoro isteći
Vezani članak:
Kako optimizirati performanse i brzinu vašeg računara u Windows-u

Dodaj kao preferirani izvor na Googleu