1. Cache:缓存区,是高速缓存,是位于CPU和主内存之间的容量较小但速度很快的存储器,因为CPU的速度远远高于主内存的速度,CPU从内存中读取数据需等待很长的时间,而  Cache保存着CPU刚用过的数据或循环使用的部分数据,这时从Cache中读取数据会更快,减少了CPU等待的时间,提高了系统的性能。

Cache并不是缓存文件的,而是缓存块的(块是I/O读写最小的单元);Cache一般会用在I/O请求上,如果多个进程要访问某个文件,可以把此文件读入Cache中,这样下一个进程获取CPU控制权并访问此文件直接从Cache读取,提高系统性能。

2. Buffer:缓冲区,用于存储速度不同步的设备或优先级不同的设备之间传输数据;通过buffer可以减少进程间通信需要等待的时间,当存储速度快的设备与存储速度慢的设备进行通信时,存储慢的数据先把数据存放到buffer,达到一定程度存储快的设备再读取buffer的数据,在此期间存储快的设备CPU可以干其他的事情。

Buffer:一般是用在写入磁盘的,例如:某个进程要求多个字段被读入,当所有要求的字段被读入之前已经读入的字段会先放到buffer中

buffer 与cache 的区别
A buffer is something that has yet to be "written" to disk. A cache is something that has been "read" from the disk and stored for later use.
 
两者都是RAM中的数据。简单来说,buffer是即将要被写入磁盘的,cache是被从磁盘中读出来的。
buffer是由各种进程分配的,被用在如输入队列等方面,一个简单的例子如某个进程要求有多个字段读入,在所有字段被读入完整之前,进程把先前读入的字段放在buffer中保存。
cache经常被用在磁盘的I/O请求上,如果有多个进程都要访问某个文件,于是该文件便被做成cache以方便下次被访问,这样可提供系统性能。
 
 

最新文章

  1. Git使用出错:Couldn‘t reserve space for cygwin‘s heap, Win32
  2. AES .net 、JS 相互加密解密
  3. Stanford机器学习笔记-10. 降维(Dimensionality Reduction)
  4. C# socket UDPの异步链接
  5. Android Grapics图像类体系
  6. Linux任务前后台的切换
  7. Hibernate与数据库分表
  8. CI框架篇之控制器篇--设置路由(1)
  9. 设计模式(六):Singleton 单件模式 -- 创建型模式
  10. java volatile的一个验证反例(转)
  11. 贴一份用delphi修改注册表改网卡MAC地址的代码
  12. JAVA_SE基础——15.循环嵌套
  13. Eclipse格式化整个项目
  14. Dynamics 365测试和启用邮箱时候一直显示“安排电子邮件配置测试”怎么办?
  15. python day03_ 文件处理
  16. PHPcms 缓存的读取和设置
  17. Fiddler抓包1-抓firefox上https请求
  18. Java Http接收中文乱码解决
  19. ajax无刷新方式对form表单进行赋值!
  20. cesium编程入门(八)设置材质

热门文章

  1. 【友盟统计报表解读】之错误分析iOS版
  2. win7兼容visual studio 2005 的方法
  3. UVA 11125 Arrange Some Marbles
  4. log4j配置文件动态指定日志文件名称
  5. hdu 5125(LIS变形)
  6. 牛客练习赛16 F 选值【二分/计数】
  7. Code+ B 汀博尔【二分答案】
  8. 【poj1149】 pigs 网络流最大流问题
  9. [BZOJ2095]Bridges
  10. linux命令详解:df命令