linux中cache和buffer的区别

马谦马谦马谦 2019年10月7日18:20:00 发表评论

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

首先整理下两者的概念:

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

区别:

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

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: