In ambito informatico, quando si parla di memoria cache (dal francese caché, “nascondere” in italiano) ci si riferisce a un dispositivo hardware ideato per velocizzare le operazioni di accesso alla memoria (sia in lettura sia in scrittura) da parte del processore.
La cache, infatti, è un componente hardware che, affiancato alla memoria principale del sistema (ovvero il disco rigido), serve a immagazzinare dati utili a eseguire con maggior velocità le future richieste di accessoalla memoria effettuate dal processore.
All'interno della cache possono essere conservati dati e valori appena “trattati” dal processore o duplicati di dati conservati su altri supporti di memoria presenti nella macchina (come, per l'appunto, il disco rigido) e che, per un motivo o per l'altro, potranno essere richieste a breve dall'unità centrale di calcolo.
Scopriamo di più sulla memoria cache e sul suo funzionamento
Come funziona la memoria cache
Credits Shutterstock
Le varie componenti hardware di un computer implementano la cache come fosse un blocco di memoria utilizzato, come detto, per immagazzinare temporaneamente piccole quantità di dati. Processori e hard disk, così come web browser e web server, fanno ricorso a questo meccanismo con grande frequenza.
Dal punto di vista logico, invece, la cache è costituita da un pool di “entrate” nelle quali archiviare il datum (i pacchetti dati) e un tag identificativo che specifichi la corrispondenza tra il datum e i pacchetti dati “originali” conservati sulla memoria principale del sistema.
Quando un client cache (che può essere il processore, il disco rigido o il browser web) ha necessità di accedere a dei dati, effettua prima di tutto una scansione della cache. Nel caso in cui nella memoria “di appoggio” sia presente il tag dei dati cercati, questi saranno utilizzati nell'esecuzione dell'operazione in corso (cache hit).
Se, ad esempio, un web browser fosse alla ricerca di una copia di una pagina web in fase di caricamento, effettuerebbe una scansione della cache a lui destinata (la cache web) utilizzando la URL della pagina come tag identificativo.
Se dovesse esserci una corrispondenza di tag, il browser eviterebbe di scaricare i dati dal web e utilizzerebbe quelli presenti nella sua memoria di cache, così da accorciare i tempi di caricamento.
In caso contrario (cache miss), il client cache dovrà estendere la richiesta alla memoria primaria (rallentando i tempi di esecuzione dell'operazione), copiando successivamente il datum in una entrata della memoria cache.
Durante un cache miss, il processore dovrà svuotare la cache (in modo parziale, mentre in alcuni casi l'utente potrà decidere di svuotare la cache in maniera completa) per fare spazio al nuovo datum in ingresso.
Questa operazione potrà essere compiuta seguendo diverse policy operative di sostituzione: tra le più utilizzate troviamo la Least recently used (“utilizzato meno di recente” in italiano), che elimina il datum utilizzato meno di recente.
Tipologie: la CPU chace
Credits Shutterstock
Installata direttamente sul processore, questa piccolissima porzione di memoria è utilizzata per conservare i dati utilizzati più di frequente nell'eseguire determinate operazioni. In questo modo la CPU non dovrà effettuare l'accesso alla RAM, accelerando ulteriormente i tempi di esecuzione delle istruzioni
Page cache
Credits Shutterstock
Si tratta di una porzione della RAM utilizzata dal sistema operativo dove copiare dal disco rigido i dati correntemente in uso. Dal momento che lo spazio è limitato, il sistema operativo tenterà di mantenere il più a lungo possibile una pagina in memoria: solo in caso di necessità si deciderà di svuotare la cache per fare spazio a nuovi datum
Disk cache
Credits Shutterstock
Un disco rigido, a volte, può essere dotato di una piccola porzione di memoria veloce dove caricare porzioni di dati logicamente attigue a quelle appena richieste.
Nella maggior parte dei casi, infatti, se un processore accede al dato A, nel breve periodo eseguirà l'accesso ai dati A1, A2, A3 e così via, tutti logicamente correlati al primo dato. In questo modo si anticipano le mosse (e le richieste) del processore e si accorceranno i tempi di esecuzione delle istruzioni in arrivo dal sistema operativo
Web cache
Credits Shutterstock
Una porzione dell'hard disk di un server o di un normale computer può essere dedicata alla memorizzazione delle pagine web caricate nel corso della navigazione web. In questi casi, il sistema locale (ad esempio il browser) non dovrà più effettuare l'accesso ai sistemi remoti (come i server), bypassando il collo di bottiglia (ovvero il restringimento che si crea quando due sistemi viaggiano a due velocità differenti) che si viene a creare a causa dell'ampiezza di banda
Google cache
Credits Shutterstock
È la cache interna di Google Chrome, che si occupa di gestire ememorizzare una parte dei contenuti delle pagine scansionate in modo da poter utilizzare questi riferimenti per non sovraccaricare di richieste i diversi siti.
Questa cache ha una doppia funzione: velocizza le operazioni di ricerca facendo riferimento alla copia salvata anziché accedere continuamente alla pagina originale. E offre una copia della pagina utilizzabile nel caso in cui il sito originale non sia raggiungibile per qualche motivo
La cache dei dispositivi mobile
Credits Primakov / Shutterstock.com
Anche i dispositivi mobile dotati di sistemi operativi Android e iOS hanno, ovviamente, la propria cache che viene utilizzata nella stessa maniera in cui viene utilizzata su un computer.
Nel caso di Android, ad esempio, il sistema operativo riserva a ogni App installata uno spazio sulla cache che può essere sfruttato per velocizzare determinate operazioni.
Ovviamente anche iOS sfrutta meccanismi simili per rendere sempre fluido e scattante l’utilizzo dello smartphone, ridurre i tempi di lag e i rallentamenti del sistema operativo.
La cache dei CMS
Credits Shutterstock
Anche i CMS, come WordPress ad esempio, hanno una propria di cache che viene utilizzata anche in questo caso per ridurre il tempo di caricamento della pagina.
Questo rientra in tutto quel discorso relativo alla user experience, che deve garantire a chi naviga su una determinata pagina una permanenza agevole, scorrevole e senza intoppi.
Quando si visita un sito, il browser avvia automaticamente dei processi in background per visualizzarlo correttamente.
Queste operazioni, ovviamente, richiedono tempo e caricamenti troppo lunghi potrebbero portare l’utente ad abbandonare la pagina per migrare altrove, questo influirà negativamente sulla user experience e Google tenderà a penalizzare il sito.
Per evitare tutto questo c’è la cache e WordPress offre tutta una serie di plugin che possono aiutare nelle operazioni di caching, anche se il loro scopo è sempre lo stesso: accorciare i tempi di caricamento delle pagine.
Perché è importante cancellare la cache di un dispositivo
Credits Shutterstock
Adesso che è stato chiarito cosa è la cache è il perché della sua importanza, occorre comunque ricordare che tutti questi file temporanei salvati sul proprio dispositivo occupano spazio prezioso.
Svuotare periodicamente la cache può essere un’ottima soluzione per eliminare i file che occupano la memoria dei computer o degli smartphone.
Per i PC con Windows e per i dispositivi mobile con Android esistono molti programmi (di cui alcuni preinstallati sul device) che si occupano di svuotare periodicamente la cache. Gli utenti possono anche procedere manualmente all’eliminazione dei dati, scansionando il dispositivo e lasciando che il programma in questione faccia il resto.
Per iOS, invece, questi software non sono disponibili ma c’è l’utilissima funzione che consente lo svuotamento dei dati a ogni apertura delle varie applicazioni installate. Per farlo è sufficiente andare nelle impostazioni e selezionare l’opzione Svuota all’avvio dalle singole App.
Per saperne di più: Il computer, come è fatto, come funziona, come migliorarlo