//本文基本上是摘要了网络上各位大神对cache、buffer的总结,由于是800年前保存在本地,所以也已经忘了出处了。感谢各位大神。

//本文对这2个概念的理解尚浅,如果愿意补充那就再好不过了。 

Cache和Buffer的中文是什么

  "Cache"被称为"缓存"

  "Buffer"被称为"缓冲"

它们的区别是什么

  首先引用一段话"A cache is something that has been "read" from the disk and stored for later use. A buffer is something that has yet to be "written" to disk. "

  不难理解,被操作的对象都是"数据"。也就是说数据这东西有的时候被CPU从磁盘里拿出来(因为用户这会儿想要使用它),而有的时候被CPU写进磁盘里(比如把游戏进度保存起来)。

  那么翻译过来就是:

  "Cache是数据被从磁盘中读出来的,等着被用"

  "Buffer是数据即将被写入磁盘,把数据完整地存起来"

它们的概念

Cache

  Cache也称为"高速缓存",是一个"位于CPU与主内存之间的一种容量较小但速度很高"的存储器。由于CPU的速度远高于主内存,CPU直接从内存中读取数据要等待一定时间周期,那么就用到Cache了。

  Cache保存着CPU刚用过或循环使用的一部分数据。这样的话,当CPU需要重新读取数据时,如果命中Cache(即:找到需要的数据),那么CPU就不用再去读硬盘了。如果没有命中Cache,那么CPU就会去读硬盘。Cache里面的数据会根据读取频率进行组织,把最频繁读取的内容放在最容易找到的位置,把不再读取的内容不断地往后排,直至从Cache中被删除。

Buffer

  Buffer也称为"缓冲区",它是根据磁盘的读写设计的,把分散的写操作集中进行,减少磁盘碎片和硬盘的反复寻道,使进程之间的相互等待变少,从而提高了系统性能。

它们是用来干什么的

Cache

  Cache经常被用在磁盘的I/O请求上,如果有多个进程都要访问某个文件,于是该文件便被做成cache以方便下次被访问,这样可提高系统性能。

Buffer

  Buffer是由各种进程分配的,被用在如输入队列等方面。

  Linux有一个守护进程,会定期清空缓冲区的数据(即:写入磁盘),也可以通过sync命令手动清空缓冲区(即:强制写入磁盘)。

言而总之

  Cache是提高了"读"的性能,Buffer是提高了"写"的性能。

cache buffer的更多相关文章

  1. lnux内核的malloc实现(Oracle的cache buffer影子)

    lnux内核的malloc实现(Oracle的cache buffer影子) 本文原创为freas_1990,转载请标明出处:http://blog.csdn.net/freas_1990/artic ...

  2. 【转】cache buffer chain 第一篇

    文章转自:http://www.jydba.net/cache-buffer-chain/ buffer cache的管理有两个重要的数据结构: hash bucket和cache buffer ch ...

  3. ORACLE CACHE BUFFER CHAINS原理

    原理图如下: 一个cache buffer chains 管理多个hash bucket,受隐含参数:_db_block_hash_buckets(控制管理几个hash bucket)

  4. Page Cache buffer Cache

    https://www.thomas-krenn.com/en/wiki/Linux_Page_Cache_Basics References Jump up ↑ The Buffer Cache ( ...

  5. 【学习笔记】cache/buffer

    cache 是为了弥补高速设备和低速设备的鸿沟而引入的中间层,最终起到**加快访问速度**的作用.buffer 的主要目的进行流量整形,把突发的大数量较小规模的 I/O 整理成平稳的小数量较大规模的 ...

  6. buffer cache —— buffer busy waits/read by other session

    oracle提供非常精确.有效的row level lock机制,多个用户同时修改数据时,为了保护数据,以块为单位挂起锁的情况不会发生.但这不太正确.以块为单位的锁虽然不存在,但正因为oracle I ...

  7. Cache Buffer 区别

    Cache 一般位于CPU中, 分为 L1 Cache, L2 Cache, 是一种读的操作,把CPU刚用过的/循环使用的数据存储起来,当CPU再次使用时,可以直接从Cache存储器中调用,减少了等待 ...

  8. 判断和调整library cache,data dictionary cache,buffer cache性能

    Oracle SGA是oracle的内存结构,存放着oracle通过oracle进程读写的内存数据.sga分为好多组件,比如shared pool,buffer cache,redo log buff ...

  9. linux中内存使用,swap,cache,buffer的含义总结

    首先介绍一下linux中内存是如何使用的.当有应用需要读写磁盘数据时,由系统把相关数据从磁盘读取到内存,如果物理内存不够,则把内存中的部分数据导入到磁盘,从而把磁盘的部分空间当作虚拟内存来使用,也称为 ...

随机推荐

  1. 12.js如何将明文转为MD5

    1.先下载MD5.JS 2.引入,使用hex_md5(str)即可

  2. (转载)jConsole,jvisualvm和jmap使用

    原文链接:http://my.oschina.net/freegarden/blog/286372 摘要 Oracle JVM自带了一些工具,观察java程序的运行,用于排错调优.正文将会对 jCon ...

  3. intellij idea 常用快捷键让你事半功倍

    为什么谈这个 工欲善其事必先利其器,键盘流是必须的,快捷键首当其冲,请收下!!! 常用快捷键列表 Live Templates 自定义代码模板 取消屏幕的翻转,可以使用ctrl+alt+左右,进行代码 ...

  4. 浅入深出之Java集合框架(下)

    Java中的集合框架(下) 由于Java中的集合框架的内容比较多,在这里分为三个部分介绍Java的集合框架,内容是从浅到深,哈哈这篇其实也还是基础,惊不惊喜意不意外 ̄▽ ̄ 写文真的好累,懒得写了.. ...

  5. mysql基础篇-----mysql简介

    2017-04-19 一.mysql简介 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品.MySQL 是最流行的关系型数据库管理系统之一,在 ...

  6. C语言学习随笔

    前段时间我们学习了HTML,感觉自己不在状态,后来就开始怀疑自己的智商呢!现在C语言也到了尾声,在这20天的学习过程中,我没 有以前那么的傲娇了. 我开始慢慢去反省自己,自己究竟该如何去学习,都说勤能 ...

  7. 十年过去了,各位 .net 兄弟还好吗

    时间是最无情的,一下子就毕业10年了.很久没有发发牢骚了,今天突然想发一下.看过我文章喷过的知道,我一般都是散文,看完不知道我写了什么,形散而神不散嘛. 十年了,不好意思,没像网上说的标准一样,做管理 ...

  8. Hihocoder 1325 平衡树·Treap(平衡树,Treap)

    Hihocoder 1325 平衡树·Treap(平衡树,Treap) Description 小Ho:小Hi,我发现我们以前讲过的两个数据结构特别相似. 小Hi:你说的是哪两个啊? 小Ho:就是二叉 ...

  9. language-detection 语言检测工具 java版的应用demo

    本文基本借鉴大佬文章:http://www.cnblogs.com/makemelaugh/archive/2012/09/26/2704802.html 在此基础上添加一些自己的补充,方便查阅. 提 ...

  10. cocos 射线检测 3D物体 (Sprite3D点击)

    看了很多朋友问怎么用一个3D物体做一个按钮,而且网上好像还真比较难找到答案, 今天翻了一下cocos源码发现Ray 已经封装了intersects函数,那么剩下的工作其实很简单了, 从屏幕的一个poi ...