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是提高了"写"的性能。
cache buffer的更多相关文章
- lnux内核的malloc实现(Oracle的cache buffer影子)
lnux内核的malloc实现(Oracle的cache buffer影子) 本文原创为freas_1990,转载请标明出处:http://blog.csdn.net/freas_1990/artic ...
- 【转】cache buffer chain 第一篇
文章转自:http://www.jydba.net/cache-buffer-chain/ buffer cache的管理有两个重要的数据结构: hash bucket和cache buffer ch ...
- ORACLE CACHE BUFFER CHAINS原理
原理图如下: 一个cache buffer chains 管理多个hash bucket,受隐含参数:_db_block_hash_buckets(控制管理几个hash bucket)
- Page Cache buffer Cache
https://www.thomas-krenn.com/en/wiki/Linux_Page_Cache_Basics References Jump up ↑ The Buffer Cache ( ...
- 【学习笔记】cache/buffer
cache 是为了弥补高速设备和低速设备的鸿沟而引入的中间层,最终起到**加快访问速度**的作用.buffer 的主要目的进行流量整形,把突发的大数量较小规模的 I/O 整理成平稳的小数量较大规模的 ...
- buffer cache —— buffer busy waits/read by other session
oracle提供非常精确.有效的row level lock机制,多个用户同时修改数据时,为了保护数据,以块为单位挂起锁的情况不会发生.但这不太正确.以块为单位的锁虽然不存在,但正因为oracle I ...
- Cache Buffer 区别
Cache 一般位于CPU中, 分为 L1 Cache, L2 Cache, 是一种读的操作,把CPU刚用过的/循环使用的数据存储起来,当CPU再次使用时,可以直接从Cache存储器中调用,减少了等待 ...
- 判断和调整library cache,data dictionary cache,buffer cache性能
Oracle SGA是oracle的内存结构,存放着oracle通过oracle进程读写的内存数据.sga分为好多组件,比如shared pool,buffer cache,redo log buff ...
- linux中内存使用,swap,cache,buffer的含义总结
首先介绍一下linux中内存是如何使用的.当有应用需要读写磁盘数据时,由系统把相关数据从磁盘读取到内存,如果物理内存不够,则把内存中的部分数据导入到磁盘,从而把磁盘的部分空间当作虚拟内存来使用,也称为 ...
随机推荐
- jq与原生js实现收起展开效果
jq与原生js实现收起展开效果 (jq需自己加载) <!DOCTYPE html> <html> <head> <meta charset="UTF ...
- Linux系统介绍
类似Windows, Linux也是一个操作系统,Linux是一套开放源代码程序,并可以自由传播的类Unix操作系统软件,多用户,多任务并且支持多线程和多CPU的操作系统. Linux系统主要被应用于 ...
- golang路上的小学生系列--使用reflect查找package路径
本文同时发布在个人博客chinazt.cc 和 gitbook 今日看到了一个有趣的golang项目--kolpa(https://github.com/malisit/kolpa). 这个项目可以用 ...
- 虚拟硬盘格式vdi、vhd、vmdk相互转换
Windows7的引导程序能够引导vhd格式的虚拟硬盘,而VirtualBox创建的虚拟硬盘文件是vdi格式的,怎么办呢? 以前要借助其他软件才能实现,但是VirtualBox早就悄悄为我们带来了一个 ...
- 关于在eclipse上部署Tomcat时出现8080等端口被占用问题的解决方法
问题描述: 在eclipse中部署Tomcat时,出现如下错误. 解决方法如下: 方法一: 1.开始->cmd->输入命令netstat -ano出现下图所示(注意下边显示有些错位,最后一 ...
- vue-devtools vue开发调试神器
前言: 由于vue是数据驱动的,所以这就存在在开发调试中查看DOM结构并不能解析出什么. 但是借助vue-devtools插件,我们就可以很容易的对数据结构进行解析和调试. 一.下载chrome扩展插 ...
- 关于MultipleActiveResultSets属性导致的There is already an open DataReader associated with this Command which must be closed first的解决方法
执行SqlDataReader.Read之后,如果还想用另一个SqlCommand执行Insert或者Update操作的话,会得到一个错误提示:There is already an open Dat ...
- spring基础系列--JavaConfig配置
原创作品,可以转载,但是请标注出处地址:http://www.cnblogs.com/V1haoge/p/7171011.html 早以前,Spring推荐使用XML的方式来定义Bean及Bean之间 ...
- Spring+SpringMVC+MyBatis深入学习及搭建(十三)——SpringMVC入门程序(二)
1.非注解的处理器映射器和适配器 1.1非注解的处理器映射器 前面我们配置的org.springframework.web.servlet.handler.BeanNameUrlHandlerMapp ...
- webstrom一键上传github及使用
对于webstrom是我参加it修真园时就推荐使用的,其他编辑器我也没什么使用过.读大学的时候还是比较喜欢 Notepad++. 现在说一下webstrom主要的关键点吧! 一.实现一键上传githu ...