您的位置:首页 > Web前端

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

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

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

一、定义

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

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

二、单词本义

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

2.1 Buffer

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



2.2 Cache

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

<img src="https://pic3.zhimg.com/50/v2-15f852f7456fc701c936075d9174f8ba_hd.jpg" data-rawwidth="1024" data-rawheight="768" class="origin_image zh-lightbox-thumb" width="1024" data-original="https://pic3.zhimg.com/v2-15f852f7456fc701c936075d9174f8ba_r.jpg">(来源:


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

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。

作者:耑新新,发布于 博客园

转载请注明出处,欢迎邮件交流:zhuanxinxin@foxmail.com
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: