linux中cache和buffer的区别

本文内容来源于知乎问答:Cache 和 Buffer 都是缓存,主要区别是什么?,根据各回答内容整理得到。

首先整理下两者的概念:

​ cache是缓存,buffer是缓冲。两者从名字来看十分相近,功能并不一样,不仔细琢磨很容易把两者混为一谈。

区别:

  1. 缓存的主要目的是为了提速,系统把部分磁盘的内存放到缓存中来提高运行速度。关键的一点是,如果缓存丢失,并不影响磁盘数据读取,只是读写速度慢一些。
  2. 缓冲的作用恰如其名——起一个缓冲的作用。例如写文件的时候,每次写一个字节,如果每次都把这1个字节写到磁盘,严重影响运行效率。而缓冲的作用就是把这些1字节的数据存起来,到一定的数量之后统一写到磁盘。同时,和缓存不同的是,缓冲区中的数据如果丢失了,数据就会永久丢失(例如:linux系统中dmesg的实现就是一个环形缓冲区,当日志过多时,后来的日志就会刷掉原来的,导致日志信息显示不全)。
最后修改:2019 年 10 月 07 日 06 : 19 PM

发表评论