每日一问14: 缓存和缓冲的区别

每日一问14: 缓存和缓冲的区别

​ 这两个名词在英文中,本来是不会混淆的,缓冲buffer,缓存cache,但是翻译成中文后却很容易搞混,要注意区分。

​ 这两个概念并不是指泾渭分明的两个东西,而是不同角度的事物。先看一下《深入理解计算机系统》中对于缓存的定义:

一般而言,高速缓存(cache)是一个小而快速的存储设备,它作为存储在更大、也更慢的设备中的数据对象的缓冲区域。适用高速缓存的过程称为缓存(caching)。(CSAPP,第三版p422)

​ 可以看到,计算机系统中,缓存就是一块具体的缓冲区域。所以我们可以说,缓冲是一个相对抽象的概率,而缓存是缓冲的一个具体实现。这一点也可以从高速缓存的全称,高速缓冲存储器得知。

缓存(cache)与缓冲(buffer)的主要区别

​ 如果非要说这两者之间的区别,我在网上找到的说法如下: https://www.cnblogs.com/mlgjb/p/7991903.html

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

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

原文地址:https://www.cnblogs.com/honernan/p/14618801.html