随笔 - 223  文章 - 0  评论 - 77  阅读 - 68万

Cache 和 Buffer 都是缓存,主要区别是什么?

存储器的高速缓冲存储器存储了频繁访问的RAM位置的内容及这些数据项的存储地址。当处理器引用存储器中的某地址时,高速缓冲存储器便检查是否存有该地址。如果存有该地址,则将数据返回处理器;如果没有保存该地址,则进行常规的存储器访问。因为高速缓冲存储器总是比主RAM存储器速度快,所以当RAM的访问速度低于微处理器的速度时,常使用高速缓冲存储器。

而Cache和Buffer在很多时候都被叫做缓存,那么它们是否一样呢?我们从以下几个方面来看。

一、定义

Cache:即高速缓冲存储器,是一种特殊的存储器子系统,其中复制了频繁使用的数据以便于CPU能够快速地访问。

Buffer:即缓冲寄存器,简称缓冲器,分为输入缓冲器和输出缓冲器。前者的作用是将外设送来的数据暂时存放,以便处理器将它取走;后者的作用是用来暂时存放处理器送往外设的数据。

二、单词本义

既然用这个单词来表示,那么肯定和其本义有着相似的地方,所以单词本义也可以在一定程度帮助我们理解这两个术语。

2.1 Buffer

Buffer 常见的释义是指如下图中铁道端头那个巨大的弹簧一类的东西,其作用是万一车没停住,撞弹簧上减速慢,从而增加其减速时间,根据动量定理Ft=mΔv,我们可以知道其冲击力减小了,从而减小其危险性,叫做缓冲

 

2.2 Cache

Cache常见的是下面这个:就是一种保管箱。图中右边的Food Cache(生锈了,导致部分字母看不清了)就是森林中设置的用来存放应急物资的保管箱,作用是把我们需要的东西放在更容易拿到的地方,或许按照台湾的翻译更好一点叫做快取

三、在计算机中使用当中的不同

3.1 Buffer的核心作用是缓冲。

比如你每秒要写或读100次硬盘,对系统冲击很大,浪费了大量时间在忙着处理开始读写和结束读写这两件事上。用个buffer暂存起来,变成每10秒写一次硬盘,对系统的冲击就很小,写入效率高了,极大缓和了冲击。

3.2 Cache的核心作用是加快取用的速度。

比如你一个很复杂的计算做完了,下次还要用结果,就把结果放手边一个好拿的地方存着,下次不用再算了,加快了数据取用的速度。

所以,如果你注意过存储系统的话,你会发现硬盘的读写缓冲/缓存名称是不一样的,叫write-buffer和read-cache。很明显地说出了两者的区别。

当然很多时候宏观上说两者可能是混用的。比如实际上memcached很多人就是拿来读写都用的。不少时候Non-SQL数据库也是。严格来说,CPU里的L2和L3 Cache也都是读写兼用——因为你没法简单地定义CPU用它们的方法是读还是写。硬盘里也是个典型例子,buffer和cache都在一块空间上,到底是buffer还是cache。

 

posted on   Arthurian  阅读(1400)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示