Diferença chave: um cache armazena dados de forma transparente para que solicitações futuras desses dados possam ser atendidas mais rapidamente. Um buffer, por outro lado, armazena dados temporariamente, enquanto os dados são o processo de passar de um lugar para outro.
Existem dois tipos principais de caches, cache de memória e cache de disco. O cache de memória é quando o cache é parte da memória principal, enquanto o armazenamento em cache é quando o cache faz parte de alguma outra área de armazenamento separada, como um disco rígido. O armazenamento em cache é o processo de armazenar dados em um cache para que os dados possam ser acessados mais rapidamente no futuro. Os dados que são armazenados em um cache podem ser valores que foram computados anteriormente ou duplicados de valores originais que são armazenados em outro lugar. Quando alguns dados são solicitados, o cache é verificado primeiro para ver se contém esses dados. Os dados podem ser recuperados mais rapidamente do cache do que de sua origem de origem.
Um exemplo fácil de entender o armazenamento em cache é observar o armazenamento em cache da web. Um cache da web é um mecanismo para o armazenamento temporário (armazenamento em cache) de documentos da web, como páginas e imagens em HTML. Isso é feito principalmente para reduzir o uso da largura de banda, a carga do servidor e o atraso percebido. Quando uma página da Web é carregada, os dados nas páginas são armazenados em cache; portanto, na próxima vez que a página for carregada, ela será mais rápida, pois os dados já estarão presentes e somente as alterações feitas na página precisarão ser carregadas, que, por sua vez, serão armazenadas em cache para a próxima vez. O link de cache do Google em seus resultados de pesquisa fornece uma maneira de recuperar informações de sites que foram recentemente desativados e uma maneira de recuperar dados mais rapidamente do que clicando no link direto.
O buffer, por outro lado, é encontrado principalmente na RAM e atua como uma área onde a CPU pode armazenar dados temporariamente. Esta área é usada principalmente quando o computador e os outros dispositivos têm diferentes velocidades de processamento. Normalmente, os dados são armazenados em um buffer, conforme são recuperados de um dispositivo de entrada (como um mouse) ou imediatamente antes de serem enviados para um dispositivo de saída (como alto-falantes). No entanto, o buffer também pode ser usado ao mover dados entre processos dentro de um computador.
Assim, o computador grava os dados em um buffer, de onde o dispositivo pode acessar os dados, como sua própria velocidade. Isso permite que o computador seja capaz de se concentrar em outros assuntos depois de gravar os dados no buffer; como se opor a focar constantemente nos dados, até que o dispositivo esteja pronto.
Os buffers podem ser implementados em um local de memória fixa no hardware ou usando um buffer de dados virtual no software, que aponta para um buffer de dados são armazenados em um meio de armazenamento físico. Maioria dos buffers são utilizados no software. Esses buffers geralmente usam a RAM mais rápida para armazenar dados temporários, já que a RAM tem um tempo de acesso muito mais rápido do que os discos rígidos. Um buffer geralmente ajusta o tempo implementando uma fila ou um algoritmo FIFO na memória. Portanto, muitas vezes é gravar dados na fila em uma taxa e lê-los em outra taxa.
Os buffers também são usados com E / S para hardware, como unidades de disco, envio ou recebimento de dados para ou de uma rede ou reprodução de som em um alto-falante. Os buffers são usados para muitos propósitos, como interconectar dois circuitos digitais operando em taxas diferentes, armazenando dados para uso posterior, permitindo que correções de tempo sejam feitas em um fluxo de dados, coletando bits de dados binários em grupos que podem ser operados em como uma unidade, e atrasando o tempo de trânsito de um sinal para permitir que outras operações ocorram.
No entanto, um buffer não pode ser usado para mover instantaneamente sua localização no fluxo de dados, a menos que a nova peça já tenha sido movida para o buffer. Semelhante ao vídeo do YouTube, que não pode ser encaminhado para uma parte que não é coberta pela barra cinza. Se você fizer isso, o buffer será realocado e reiniciado a partir do novo local.
Ainda assim, as funções de um cache e buffer não são mutuamente exclusivas e são frequentemente combinadas para um desempenho ideal.