Se utilizzi Windows da anni, probabilmente avrai sentito parlare di... Prefetch, SuperFetch (ora SysMain) o anche prefetching della CPUMa raramente viene spiegato bene in cosa differiscono e quando ha senso usarli. Non è solo una questione di "trucchi per velocizzare il tuo PC": dietro ci sono algoritmi, gestione della memoria e persino decisioni di progettazione di Microsoft che abbiamo ereditato dall'era di Windows XP."
Nelle righe che seguono approfondiremo Cos'è esattamente il prefetching a livello hardware e software, come funziona Prefetch in Windows e cosa fa SuperFetch/SysMain?Perché il loro impatto non è lo stesso su un HDD rispetto a un SSD e come è possibile attivarli o disattivarli in sicurezza quando è davvero conveniente farlo.
Prefetching: hardware vs software
Il termine Il prefetching viene utilizzato sia nell'architettura dei processori che nei sistemi operativi.Ed è importante separare nettamente i due mondi per non confondere i concetti quando parliamo di "Prefetch" in Windows.
Da una parte troviamo il Prefetching software, implementato dal sistema operativo o dal compilatoreIn questo caso, il software stesso analizza i modelli di accesso ai dati o alle istruzioni e decide di caricare determinate informazioni in anticipo, prima che la CPU ne abbia bisogno. Un esempio tipico è il compilatore GNU GCC, che consente l'utilizzo della funzione __builtin_prefetch per inserire istruzioni di precaricamento nel binario, in modo da ridurre i tempi di attesa durante l'esecuzione del programma.
All'altro estremo c'è il prefetching hardware, integrato direttamente nel processoreMolte CPU x86 includono istruzioni specifiche come PRELETTURA E, soprattutto, hanno una logica dedicata in grado di rilevare schemi di accesso alla memoria (sequenziali, a salti regolari, ecc.) e di portare nelle cache dati o istruzioni non ancora formalmente richiesti. L'obiettivo è che quando il kernel va a leggere tali informazioni, se si trova in una cache a bassa latenza invece di doverlo attendere dalla RAM.
Questo meccanismo di precaricamento della cache L'hardware si applica sia ai dati che alle istruzioni. In generale, possiamo distinguere due tipologie principali: precaricamento dei dati, che anticipa il caricamento degli operandi che utilizzeranno le istruzioni e il precaricamento delle istruzioniche si concentra sul recupero di blocchi di codice che verranno eseguiti successivamente. I primi processori popolari facevano qualcosa di simile: l'Intel 8086 aveva un piccolo buffer di 6 byte per anticipare l'esecuzione, e il Motorola 68000 aveva un prefetch di 4 byte. Oggi, tutte le moderne microarchitetture ad alte prestazioni incorporano tecniche di prefetching altamente sofisticate.
Vale la pena ricordare che alcuni BIOS/UEFI includono opzioni per abilita o disabilita il prefetch della CPU dal menu avanzato. Non è disponibile su tutte le schede madri e non deve essere confuso con il parametro "IDE Prefetch Mode", che è destinato a ottimizzare accesso a vecchie unità IDE, cosa ormai rara nella maggior parte dei computer moderni.
Che cos'è Prefetch in Windows e come funziona?
Nel contesto di Windows, quando parliamo di "Prefetch" ci riferiamo solitamente a la tecnologia introdotta nel kernel di Windows NT a partire da Windows XP ed ereditato da Windows Vista, Windows 7, Windows 10 e Windows 11. Non stiamo parlando di prefetching della CPU, ma di un componente del sistema operativo stesso.
A partire da Windows XP, il sistema crea un Una cartella specifica denominata Prefetch all'interno della directory di WindowsI file con estensione vengono archiviati in quella posizione. .pf Questi file contengono informazioni sui file di sistema e delle applicazioni utilizzati durante l'avvio e l'esecuzione. Ogni programma in esecuzione genera (o aggiorna) il proprio file di prelettura, che Windows utilizza per velocizzare i futuri avvii dello stesso programma.
Il cosiddetto "servizio Prefetch" non è un servizio autonomo nella console dei servizi, ma piuttosto un algoritmo di gestione della cache integrato nel sistema stessoQuesto algoritmo registra quali elementi vengono caricati durante l'avvio del sistema e quando si avviano le applicazioni e organizza la lettura del disco in modo più efficiente per un utilizzo futuro, in modo che Il tempo di avvio del sistema e delle app è ridotto.
Possiamo comprenderlo come uno strato di intelligenza che decide quali dati è conveniente avere "a portata di mano" nella cache o nella memoria Ciò rende l'accesso molto più rapido rispetto alla lettura dal disco rigido ogni volta. In Windows 10 e Windows 11, questo meccanismo rimane, sebbene il suo impatto pratico sia minore sui computer con SSD rispetto a quelli con dischi rigidi meccanici.
Tuttavia, questo approccio presenta delle sfumature. Il prefetch registra praticamente tutto ciò che apriamo, e questo include file di installazione come setup.exe che vengono utilizzati solo una voltaIn questi casi, il file .pf generato non offre alcun miglioramento perché l'applicazione non verrà più eseguita, ma rappresenta un'ulteriore scrittura sul disco. Inoltre, Prefetch Non è particolarmente selettivo con i programmi che vengono aggiornati.Può memorizzare tracce di più vecchie versioni e applicazioni disinstallate, il che alla fine crea inutili ingombri nella cartella.
SuperFetch (SysMain): evoluzione del Prefetch in Windows
Per fare un ulteriore passo avanti, Microsoft ha introdotto SuperFetch, che nelle versioni più recenti di Windows 10 e Windows 11 è chiamato servizio SysMainSebbene si basi in parte sulle informazioni della cartella Prefetch, il suo funzionamento è più aggressivo e predittivo.
SuperFetch/SysMain viene eseguito in background come servizio di gestione della memoria orientato all'utilizzo della RAMInvece di limitarti a registrare quali file sono coinvolti durante l'avvio e il caricamento iniziale dei programmi, analizza le tue abitudini quotidiane: quali applicazioni apri, a che ora e con quale frequenza. Con questi dati, prova ad anticipare e caricare le applicazioni in memoria in modo più efficace. le app che penso userai prestoin modo che quando clicchi su di essi, si aprano quasi istantaneamente.
L'idea ha senso su macchine con molta RAM e dischi rigidi meccanici, dove L'utilizzo di memoria libera per precaricare eseguibili e librerie riduce la latenza in modo evidente. Tuttavia, su sistemi con memoria limitata o SSD, il vantaggio può essere ridotto e persino causare problemi se il servizio entra in un ciclo continuo di lettura/scrittura, aumentando l'utilizzo del disco al 100% per periodi prolungati.
Nelle versioni precedenti di Windows 10, era possibile trovare il servizio direttamente come SuperFetch nella console dei servizi. A partire dalla versione 1809, Microsoft l'ha rinominato in SysMainsebbene il suo scopo rimanga lo stesso: ottimizzare le prestazioni percepite caricando nella RAM ciò che ritiene più probabile che tu utilizzi.
Differenze tra Prefetch e SuperFetch in Windows
Sebbene entrambi i meccanismi funzionino insieme, Le differenze tra Prefetch e SuperFetch (SysMain) sono fondamentali per sapere cosa riprodurre. quando vuoi ottimizzare la tua attrezzatura.
Da un lato, Prefetch si concentra sulla registrazione e l'ottimizzazione delle letture del disco dei file necessari per avviare Windows e lanciare le applicazioni. Il suo scopo principale è l'archiviazione: crea tracce, organizza l'accesso e genera file .pf nella cartella corrispondente.
SuperFetch/SysMain, d'altra parte, si concentra su Gestione della memoria RAMUtilizza i dati di utilizzo per decidere quali applicazioni e dati devono rimanere precaricati in memoria, in modo persistente, anche se non sono in esecuzione. Ciò si traduce in un'esperienza molto reattiva all'apertura di programmi utilizzati di frequente su computer con ampia RAM.
Un'altra differenza importante è che SuperFetch prova ad anticipare la tua routine quotidiana (ad esempio, aprendo sempre il browser e il client di posta elettronica all'avvio del PC), mentre Prefetch si limita ad apprendere da ciò che è accaduto durante le esecuzioni, senza addentrarsi troppo nell'ambito della previsione delle pianificazioni.
Vale anche la pena notare che entrambi i meccanismi possono accumulare "spazzatura digitale". SuperFetch Mantiene nella sua lista i programmi che non sono più installati o versioni precedenti non più utilizzate, e Prefetch continua ad accumulare file .pf da applicazioni disinstallate o aggiornate. Pertanto, col tempo, alcune delle informazioni precaricate diventano meno utili.
Relazione tra Prefetch e SuperFetch con HDD e SSD
Una delle domande più frequenti è se Ha senso usare Prefetch e SuperFetch sui PC con SSDPer rispondere a questa domanda, dobbiamo capire come è cambiato lo storage negli ultimi anni.
Nelle unità disco rigido meccaniche (HDD), dove la testina di lettura/scrittura deve muoversi fisicamente per leggere i dati, I miglioramenti in questi algoritmi sono molto evidenti.Meno salti della testina, letture più ordinate e il precaricamento dei file critici si traducono in tempi di avvio più rapidi e applicazioni che impiegano meno tempo per apparire sullo schermo.
Con gli SSD, tuttavia, l'accesso ai dati è quasi istantaneo, senza parti in movimento, e il tempo di ricerca è trascurabile rispetto a un HDD. In questo scenario, Il vantaggio aggiuntivo offerto da Prefetch è molto più piccolo.al punto che molti utenti non notano quasi la differenza tra averlo attivo o meno.
Inoltre, ogni volta che Prefetch genera o aggiorna file .pf e ogni volta che SuperFetch riorganizza i dati, si verifica quanto segue: scritti aggiuntivi sull'unità Sebbene gli SSD moderni supportino un numero enorme di scritture, come buona pratica si consiglia generalmente di ridurre le operazioni che non offrono un chiaro vantaggio, soprattutto sugli SSD di fascia bassa o su quelli utilizzati da molti anni.
Da Windows 7 in poi, il sistema operativo stesso è in grado di rileva se il disco di sistema è un SSD e regolare automaticamente alcuni di questi parametri. Tuttavia, nelle installazioni clonate da un HDD, nelle configurazioni precedenti o nei sistemi che sono stati aggiornati senza un'installazione pulita, Prefetch e SuperFetch potrebbero continuare a funzionare come se il disco fosse meccanico.
È consigliabile pulire o disabilitare la cartella Prefetch?
Col passare del tempo è normale che La cartella C:\Windows\Prefetch accumula un gran numero di file .pfCiò porta molti utenti a chiedersi se sia consigliabile eliminarli periodicamente, poiché metodo di manutenzione per migliorare le prestazioni per accelerare il sistema.
Dal punto di vista tecnico, Windows gestisce automaticamente quella cartellaRimuove le vecchie tracce, dà priorità a quelle più recenti e mantiene un numero massimo ragionevole di file per evitare di sovraccaricare lo storage. L'eliminazione manuale di solito non offre benefici duraturi, se non dopo alcune esecuzioni in cui il sistema ricostruisce le informazioni da zero.
In termini di sicurezza e stabilità , È sicuro eliminare il contenuto della cartella Prefetch (non la cartella stessa). Windows ricreerà i file .pf durante l'utilizzo del sistema. Tuttavia, non è un'operazione che è necessario eseguire di routine, perché la logica del sistema operativo esegue già la pulizia necessaria.
Se ciò che ti preoccupa è che Prefetch e SuperFetch conservano i dati dei programmi disinstallati o delle versioni precedentiIl metodo più efficace è utilizzare programmi di disinstallazione avanzati come Bulk Crap Uninstaller, in grado di rimuovere voci di registro, file residui e vecchi riferimenti. Alcuni di questi strumenti identificano ed eliminano anche le voci di prefetch relative a software non più esistenti.
Come abilitare o disabilitare Prefetch in Windows
Se, dopo aver soppesato i pro e i contro, decidi di regolare manualmente il comportamento di Prefetch, devi farlo da il registro di Windows, dove si trova il tasto che controlla questa funzione.
Il valore si trova sul percorso HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Session Manager di gestione \ \ Memory PrefetchParametersAll'interno di questa chiave troverai una voce DWORD chiamata EnablePrefetcher (in alcune fonti appare abbreviato come EnablePrefetch).
I possibili valori di EnablePrefetcher sono i seguenti e determinano come applicare il precarico:
- 0 – Prefetch completamente disabilitato.
- 1 – Prefetch solo per l'esecuzione dell'applicazione.
- 2 – Prefetch solo per l'avvio del sistema.
- 3 – Prefetch attivo sia per l'avvio che per le applicazioni (questa è l'impostazione consigliata e predefinita sui computer con HDD).
Nei team che ancora utilizzano dischi rigidi meccaniciLa cosa più logica da fare è mantenere il valore a 3Questo perché si ottengono i massimi vantaggi dal precaricamento sia quando si accende il computer sia quando si aprono programmi pesanti.
Se il tuo PC ha un SSD moderno e vuoi ridurre le scritture non necessarieMolti utenti scelgono di impostare il valore su 0 per disattivarlo. La perdita di prestazioni è solitamente minima o impercettibile nell'uso quotidiano, mentre le operazioni di scrittura legate a questo algoritmo diminuiscono.
Come disattivare o regolare SuperFetch (SysMain) in Windows 10 e 11
Il servizio SuperFetch, ora noto come SysMain nelle ultime versioni di Windows 10 e Windows 11È gestita dalla console dei servizi di sistema. Questa impostazione è molto utile se si nota un'attività insolita del disco o un utilizzo elevato e inspiegabile della RAM.
Per modificarne il comportamento, è necessario aprire la finestra di dialogo Esegui con Windows + R, scrivere services.msc e premi Invio. Nella finestra che appare, scorri l'elenco fino a trovare il servizio. SysMain (nelle installazioni più vecchie potrebbe ancora apparire come "Superfetch").
Facendo doppio clic sulla voce si aprirà la finestra delle proprietà . Da lì è possibile Interrompere il servizio se è in esecuzione e cambia il "Tipo di avvio" in Disabilitato Se si desidera evitare che si riattivi all'avvio di Windows, dopo aver applicato e accettato le modifiche, si consiglia di riavviare il computer per verificarne l'effettivo impatto sulle prestazioni.
In team con Unità HDD e poca RAMDi solito è preferibile lasciare SysMain in modalità automatica, poiché ciò aiuta a snellire il carico delle applicazioni comuni. Su macchine con SSD e RAM sufficienteDisattivandola è possibile ridurre l'utilizzo costante del disco e della CPU senza che si verifichi una diminuzione evidente durante l'apertura dei programmi.
Prefetch, SuperFetch e altri fattori di prestazione in Windows
Quando si parla di velocizzare Windows, Prefetch e SuperFetch sono solo altri due pezzi di un puzzle molto più complessoEsistono altri componenti, come l'indicizzazione dei file di sistema, che influiscono anch'essi sulla sensazione di fluidità ... e che, come questi servizi, possono mettere a dura prova il disco se non sono configurati correttamente.
L'indicizzazione di Windows, ad esempio, tende a traccia quasi tutti i file di sistema per abilitare ricerche rapide dal menu Start o dal browser. Esistono utilità di terze parti, come Tuttoche offrono ricerche praticamente istantanee senza la necessità di mantenere un indice così pesante e che molti utenti considerano più leggere ed efficienti dell'indicizzazione nativa.
Ciò ha portato alcune persone a scegliere Disabilita sia l'indicizzazione che il Prefetch e parte dell'integrazione web nel menu Start, sostituendolo con strumenti esterni più veloci e meno impegnativi per il disco. In sostanza, si tratta di un modo per compensare il fatto che alcune funzioni di Windows non si sono evolute a sufficienza, mentre altre funzionalità molto più discutibili (bloatware, pubblicità , widget inutili, ecc.) sono state aggiunte.
Se a questo aggiungiamo il fatto che il sistema solitamente lasciando tracce nel registro e sul disco dopo l'installazione e la disinstallazione dei programmiÈ chiaro che, oltre a Prefetch e SuperFetch, una buona politica di manutenzione prevede l'utilizzo di programmi di disinstallazione avanzati, il controllo della quantità di software residente e il monitoraggio dei servizi attivi in ​​background.
Quando ha senso disabilitare Prefetch e SuperFetch
Sebbene molte guide raccomandino indiscriminatamente "disabilita tutto e il tuo PC funzionerà più velocemente", la realtà è che La decisione dipende molto dall'hardware e dal modo in cui si utilizza l'apparecchiatura..
Se usi un file HDD come unità principaleL'approccio più sensato è mantenere Prefetch a 3 e SysMain in automatico, a meno che non si rilevi chiaramente che quest'ultima causa problemi di utilizzo del disco al 100%. Nella maggior parte dei casi, entrambe le funzioni offrono più vantaggi che svantaggi.
Se il sistema si avvia da un SSD e hai abbastanza RAMSi può valutare di disabilitare Prefetch e SysMain per ridurre le scritture su disco ed evitare picchi di attività causati da un precaricamento aggressivo. Il sistema continuerà a funzionare molto velocemente grazie alle prestazioni intrinseche dell'SSD e, in molti casi, si noterà una maggiore reattività .
In ogni caso l'ideale è Prova le modifiche una per una, monitorare il comportamento con strumenti come Task Manager, PerfMon di Windows o la Suite Sysinternals, e scegli la combinazione che offre il miglior equilibrio tra velocità e consumo di risorse. Non esiste una soluzione unica per tutti.
Comprendere il funzionamento di Prefetch, SuperFetch/SysMain e CPU prefetching aiuta a prendere decisioni consapevoli: Nelle macchine dotate di hard disk meccanici restano ottimi alleati, mentre nei sistemi moderni dotati di SSD il loro utilizzo andrebbe perfezionato. per evitare scritture non necessarie e sfruttare al massimo le capacità dell'hardware senza sacrificare la stabilità del sistema.
