我是靠谱客的博主 自由大炮,最近开发中收集的这篇文章主要介绍缓冲与缓存前言缓冲(buffer)缓存(cache),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

目录

前言

缓冲(buffer)

定义及作用

应用场景

举个栗子

缓存(cache)

CPU缓存

磁盘缓存

浏览器缓存

举个栗子


前言

缓存与缓冲一字之差,到底有何区别,我们来探讨下!

缓冲(buffer)

定义及作用

缓冲技术是为了协调吞吐速度相差很大的设备之间数据传输而采用的技术。

为了缓和CPU和I/O设备速度不匹配的矛盾,提高CPU和I/O设备的并行性,在现代操作系统中,几乎所有的I/O设备在与处理机交换数据时都用了缓冲区,并提供获得和释放缓冲区的手段。总结来说,缓冲区技术用到了缓冲区,而缓冲区的引入是为了缓和CPU和I/O设备的不匹配,减少对CPU的中断频率,提高CPU和I/O设备的并行性。 

应用场景

在数据到达与离去速度不匹配的地方,就应该使用缓冲技术。

缓冲区:一般编程所说的缓冲区指的是内存缓冲区,这是程序所设置的一块内存空间,用来暂存从其他设备读入的数据或者是即将写入其他设备的数据;

举个栗子

       某果园摘苹果存储至仓库,会按照一定包装规格进行打包,然后将苹果整筐整筐的送至仓库:这里我们将苹果入库比作写入数据,仓库比作磁盘等存储设备,将摘好的苹果放入仓库,如果不加包装,摘一个送一个,肯定是效率极其低下的;所有我们利用缓冲技术,流量整形,按照固定规格,对苹果进行打包,一筐满了就送苹果入库,这样会大大提升工作效率。


缓存(cache)

CPU缓存

它中文名称是高速缓冲存储器,读写速度很快,几乎与CPU一样。由于CPU的运算速度太快,内存的数据存取速度无法跟上CPU的速度,所以在cpu与内存间设置了cache为cpu的数据快取区。当计算机执行程序时,数据与地址管理部件会预测可能要用到的数据和指令,并将这些数据和指令预先从内存中读出送到Cache。一旦需要时,先检查Cache,若有就从Cache中读取,若无再访问内存,现在的CPU还有一级cache,二级cache。简单来说,Cache就是用来解决CPU与内存之间速度不匹配的问题,避免内存与辅助内存频繁存取数据,这样就提高了系统的执行效率。

在这里插入图片描述

磁盘缓存

磁盘也有cache,硬盘的cache作用就类似于CPU的cache,它解决了总线接口的高速需求和读写硬盘的矛盾以及对某些扇区的反复读取。

浏览器缓存

浏览器缓存(Browser Caching)是为了节约网络的资源加速浏览,浏览器在用户磁盘上对最近请求过的文档进行存储,当访问者再次请求这个页面时,浏览器就可以从本地磁盘显示文档,这样就可以加速页面的阅览,并且可以减少服务器的压力。这个过程与下载非常类似,不过下载是用户的主动过程,并且下载的数据一般是长时间保存,游览器的缓存的数据只是短时间保存,可以人为的清空

举个栗子

李先生出差去北京,从南京出发,当天早上他提前出发,乘坐公交地铁去了火车站,在候车站等待一段时间,准点上了高铁...

这里我们将高铁比作cpu,高铁到达站点后,会完成载客,李先生公交地铁至候车大厅 可以理解为提前缓存好的数据,以方便和谐号完成载客,和谐号到站就载客,到点就出发,不会像缓冲技术那样涉及到流量整形。


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

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

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

简单来说就是buffer偏重于写,而cache偏重于读

最后

以上就是自由大炮为你收集整理的缓冲与缓存前言缓冲(buffer)缓存(cache)的全部内容,希望文章能够帮你解决缓冲与缓存前言缓冲(buffer)缓存(cache)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部