zoukankan      html  css  js  c++  java
  • cache buffer

    //本文基本上是摘要了网络上各位大神对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是提高了"写"的性能。

  • 相关阅读:
    使用 linux kernel +busybox 定制linux系统
    记一次golang的内存泄露
    关于Queries_per_sec 性能计数器
    NUMA导致的MySQL服务器SWAP问题分析
    Drop Table对MySQL的性能影响分析
    当MySQL数据库遇到Syn Flooding
    tcp_tw_recycle参数引发的数据库连接异常
    一例数据同步异常问题分析
    MySQL大量线程处于Opening tables的问题分析
    MySQL DeadLock故障排查过程
  • 原文地址:https://www.cnblogs.com/musicmovie/p/4244343.html
Copyright © 2011-2022 走看看