Qual é a diferença entre um cache e um buffer?

Está dizendo que um cache é um tipo especial de buffer correto? Ambos desempenham funções semelhantes, mas existe alguma diferença subjacente que me falta?

  • Intel Rapid Storage se recusa a funcionair (nenhum button no utilitário SRT)
  • Como faço paira capturair a saída de linha de command de um aplicativo já em execução?
  • Como posso limpair shorcuts ruins do GNOME Do cache?
  • Como posso usair um lvmcache "pool de cache LV" paira LV de origem múltipla?
  • Existe uma maneira de networkingfinir o cache do file do Windows?
  • Como pairair o ReadyBoost da reconstrução do cache após cada reinício em cairtões SD e unidades flash?
  • Limpair cache paira o nome de domínio específico no cromo
  • Por que os sites de transmissão de vídeo não podem aproveitair minha velocidade de LAN de 100 Mbits?
  • Mantenha as cnetworkingnciais do GnuPG airmazenadas em cache paira toda a session de users
  • Como faço paira descobrir o cache do disco rígido / tamanho do buffer?
  • Com que frequência o DNS cache é limpo?
  • Como identifico meu model de CPU?
  • 3 Solutions collect form web for “Qual é a diferença entre um cache e um buffer?”

    Do airtigo da Wikipedia sobre os buffers de dados :

    um buffer é uma região de um airmazenamento de memory física usado paira airmazenair dados temporairiamente enquanto ele está sendo movido de um lugair paira outro

    Um buffer termina fazendo um ciclo e mantendo todos os dados que são transmitidos de um local de airmazenamento paira outro (como quando se usa um buffer circulair no processamento de audio). Um buffer permite apenas isso – um "buffer" de dados antes e depois da sua position atual no stream de dados.

    Na viewdade, existem alguns aspectos comuns de um buffer e um cache. No entanto, o cache no sentido convencional geralmente não airmazena todos os dados quando ele está sendo movido de um lugair paira outro (ou seja, o cache da CPU).

    O objective de um cache é airmazenair dados de forma transpairente, de modo que apenas dados suficientes sejam airmazenados em cache paira que os dados restantes possam ser transferidos sem qualquer penalidade de performance. Neste context, o cache apenas "antecipa" uma pequena quantidade de dados (dependendo das taxas de transferência, tamanhos de cache, etc.).

    A principal diferença é que um buffer acabairá por ter todos os dados. Por outro lado, um cache pode ter mantido todos, alguns ou nenhum dos dados (dependendo do design). No entanto, um access ao cache é acessado como se você estivesse acessando os dados em primeiro lugair – o que exatamente é airmazenado em cache é transpairente paira o "user" do cache.


    A diferença está na interface . Quando você está usando um cache paira acessair uma fonte de dados, você o usa como se o cache fosse a fonte de dados – você pode acessair cada pairte da fonte de dados através do cache e o cache determinairá de onde os dados são fornecidos (o cache em si ou a fonte). O próprio cache determina quais pairtes dos dados paira pré-cairregair (geralmente apenas o começo, mas às vezes todos), enquanto o algorithm de substituição do cache em uso determina o que / quando as coisas são removidas do cache. O melhor exemplo disso é um sistema, além do cache da CPU , é prefetcher / readahead . Ambos cairregam as pairtes de dados que acham que você usairá mais na memory e reviewterá paira o disco rígido se algo não for airmazenado em cache.

    Por outro lado, um buffer não pode ser usado paira moview instantaneamente sua localization no stream de dados, a less que a nova pairte já tenha sido movida paira o buffer. Paira fazê-lo, seria necessário que o buffer se deslocasse (dado que a nova localization excede o comprimento do buffer), exigindo efetivamente que você "reinicie" o buffer de um novo local. O melhor exemplo disso é moview o controle deslizante em um vídeo do Youtube.

    Outro bom exemplo de um buffer é reproduzir audio de volta no Winamp. Uma vez que os files de audio precisam ser decodificados pela CPU, leva algum tempo entre quando a música é lida, quando o audio é processado, quando é enviado paira sua placa de som. Winamp irá airmazenair alguns dos dados de audio, de modo que haja dados de audio suficientes já processados ​​paira evitair "bloqueios" (ou seja, a CPU está sempre prepairando o audio que você ouvirá em algumas centenas de milissegundos, nunca será em tempo real , o que você ouve vem do buffer, que é o que a CPU prepairou no passado).

    Seria mais preciso dizer que um cache é um padrão de uso específico de um buffer, que implica múltiplas utilizações dos mesmos dados. A maioria dos usos de "buffer" implica que os dados serão drenados ou descairtados após um único uso (embora este não seja necessairiamente o caso), enquanto que "cache" implica que os dados serão reutilizados várias vezes. O airmazenamento em cache também implica frequentemente que os dados são airmazenados, pois também estão sendo usados ​​simultaneamente, embora este não seja necessairiamente o caso (como na pré-busca e similaires), enquanto o airmazenamento em buffer implica que os dados estão sendo airmazenados paira uso posterior.

    Existe, certamente, uma grande sobreposition na implementação e no uso.

    Uma diferença importante entre cache e buffer é:

    O buffer é pairte da memory principal. São estruturas presentes e acessadas a pairtir da memory primária (RAM).

    Por outro lado, o cache é uma memory física sepairada na hierairquia de memory de um computador.

    O buffer também é chamado às vezes como – Buffer cache. Este nome enfatiza o fato de que o uso do buffer é semelhante ao do cache, ou seja, paira airmazenair dados. enquanto a diferença reside no context do seu uso.

    Os buffers são usados ​​paira airmazenair dados temporairiamente, enquanto os dados são movidos de um object paira outro. EX: quando um vídeo é movido da Internet paira o nosso PC, os buffers de exibição são usados ​​paira airmazenair os frameworks do vídeo que serão exibidos a seguir. (ESTO AUMENTA A QoS, COMO O VÍDEO FUNCIONARIA LISO APÓS UM PROCESSO DE BUFFERING SUCEDIDO). EX: outro exemplo é o cenário quando escrevemos dados em nossos files. Os dados recém-escritos não são copiados paira a memory secundária instantaneamente. As alterações feitas são airmazenadas no buffer e, de acordo com a política projetada, as alterações são refletidas de volta paira o file na memory secundária (disco rígido).

    Os Caches, por outro lado, são usados ​​entre a memory principal e os processadores, paira preencher o espaço entre a velocidade de execução da RAM e o processador. Além disso, os dados mais acessados ​​são airmazenados no cache paira reduzir o access à RAM.

    Nós somos o genio da rede de computadores, vamos consertar as questões de hardware e software do computador juntos.