Differenza fondamentale: una cache memorizza in modo trasparente i dati in modo che le richieste future per tali dati possano essere offerte più rapidamente. Un buffer, d'altra parte, memorizza temporaneamente i dati mentre i dati sono il processo di spostamento da un luogo a un altro.
Esistono due tipi principali di cache, memorizzazione nella cache e memorizzazione nella cache del disco. Il caching della memoria avviene quando la cache fa parte della memoria principale, mentre la memorizzazione nella cache del disco avviene quando la cache fa parte di un'altra area di archiviazione separata, ad esempio un disco rigido. Il caching è il processo di memorizzazione dei dati in una cache in modo che i dati possano essere consultati più rapidamente in futuro. I dati memorizzati in una cache potrebbero essere valori che sono stati calcolati in precedenza o duplicati di valori originali memorizzati altrove. Quando vengono richiesti alcuni dati, la cache viene prima controllata per vedere se contiene quei dati. I dati possono essere recuperati più rapidamente dalla cache che dalla sua origine.
Un semplice esempio per capire il caching è quello di guardare il caching del web. Una cache Web è un meccanismo per la memorizzazione temporanea (memorizzazione nella cache) di documenti Web, come pagine HTML e immagini. Questo viene fatto principalmente per ridurre l'utilizzo della larghezza di banda, il carico del server e il ritardo percepito. Quando viene caricata una pagina Web, i dati nelle pagine vengono memorizzati nella cache; quindi la prossima volta che la pagina viene caricata è più veloce, dato che i dati sono già presenti, e solo le modifiche apportate alla pagina devono essere caricate, che a loro volta vengono memorizzate nella cache per la prossima volta. Il link della cache di Google nei suoi risultati di ricerca fornisce un modo per recuperare informazioni dai siti web che sono recentemente andati giù e un modo per recuperare i dati più rapidamente che facendo clic sul collegamento diretto.
Il buffer, d'altra parte, si trova principalmente nella RAM e funge da area in cui la CPU può memorizzare temporaneamente i dati. Quest'area viene utilizzata principalmente quando il computer e gli altri dispositivi hanno velocità di elaborazione diverse. In genere, i dati vengono archiviati in un buffer mentre viene recuperato da un dispositivo di input (come un mouse) o appena prima di essere inviato a un dispositivo di output (come i diffusori). Tuttavia, il buffer può essere utilizzato anche quando si spostano dati tra processi all'interno di un computer.
Quindi, il computer scrive i dati in un buffer, da cui il dispositivo può accedere ai dati, come la sua velocità. Ciò consente al computer di essere in grado di concentrarsi su altri argomenti dopo che ha scritto i dati nel buffer; come opporsi a concentrarsi costantemente sui dati, fino a quando il dispositivo è fatto.
I buffer possono essere implementati in una locazione di memoria fissa nell'hardware o utilizzando un buffer di dati virtuali nel software, che punta a un buffer di dati sono memorizzati su un supporto di memorizzazione fisico. La maggior parte dei buffer è utilizzata nel software. Questi buffer utilizzano in genere la RAM più veloce per archiviare dati temporanei, poiché la RAM ha un tempo di accesso molto più rapido rispetto alle unità disco rigido. Un buffer spesso regola i tempi implementando un algoritmo di coda o FIFO in memoria. Quindi, spesso scrive i dati in coda ad una velocità e li legge ad un altro ritmo.
I buffer sono spesso usati con I / O sull'hardware, come le unità disco, l'invio o la ricezione di dati da o verso una rete, o la riproduzione di suoni su un altoparlante. I buffer sono utilizzati per molti scopi, come l'interconnessione di due circuiti digitali operanti a velocità diverse, tenendo i dati per l'uso in un secondo momento, consentendo di eseguire correzioni temporali su un flusso di dati, raccogliendo bit di dati binari in gruppi che possono poi essere azionati come unità e ritardare il tempo di transito di un segnale per consentire il verificarsi di altre operazioni.
Tuttavia, non è possibile utilizzare un buffer per spostare istantaneamente la posizione nel flusso di dati, a meno che la nuova parte non sia già stata spostata nel buffer. Simile al video di YouTube, che non può essere inoltrato a una parte che non è coperta dalla barra grigia. Se lo fai, il buffer si riposizionerà e si riavvierà dalla nuova posizione.
Tuttavia, le funzioni di una cache e di un buffer non si escludono a vicenda e sono spesso combinate per una performance ideale.