码迷,mamicode.com
首页 > 系统相关 > 详细

buffer和cache的区别

时间:2018-04-05 16:50:20      阅读:222      评论:0      收藏:0      [点我收藏+]

标签:buffer和cache区别   查看内存   

一,计算机硬件组成
计算机硬件组成:CPU,存储器,输入输出设备(I/O),其他(主板,电源等)
CPU:运算器,控制器
存储器:内部存储器(ROM/RAM),外部存储器(磁盘等)
I/O:输入设备(鼠标/键盘),输出设备(显示器/打印机)

从性能分析:
-CPU缓存>内存>磁盘>数据库
从性能来看内存是介于CPU和内存,在实际中内存是CPU和磁盘的桥梁。buffer和cache是内存的不同的体现,接下来简单分析对buffer和cache的理解。


二,buffer和cache
1.buffer:
A buffer is something that has yet to be "written" to disk.翻译过来就是:buffer就是写入到磁盘。buffer是为了提高内存和硬盘(或其他I/O设备)之间的数据交换的速度而设计的。buffer将数据缓冲下来,解决速度慢和快的交接问题;速度快的需要通过缓冲区将数据一点一点传给速度慢的区域。例如:从内存中将数据往硬盘中写入,并不是直接写入,而是缓冲到一定大小之后刷入硬盘中。


2.cache:
A cache is something that has been "read" from the disk and stored for later use.翻译过来就是:cache就是从磁盘读取数据然后存起来方便以后使用。cache实现数据的重复使用,速度慢的设备需要通过缓存将经常要用到的数据缓存起来,缓存下来的数据可以提供高速的传输速度给速度快的设备。例如:将硬盘中的数据读取出来放在内存的缓存区中,这样以后再次访问同一个资源,速度会快很多。


3.buffer和cache的特点
共性:
都属于内存,数据都是临时的,一旦关机数据都会丢失。

差异:(先理解前两点,后两点有兴趣可以了解)
A.buffer是要写入数据;cache是已读取数据。
B.buffer数据丢失会影响数据完整性,源数据不受影响;cache数据丢失不会影响数据完整性,但会影响性能。
C.一般来说cache越大,性能越好,超过一定程度,导致命中率太低之后才会越大性能越低。buffer来说,空间越大性能影响不大,够用就行。cache过小,或者没有cache,不影响程序逻辑(高并发cache过小或者丢失导致系统忙死除外)。buffer过小有时候会影响程序逻辑,如导致网络丢包。
D.cache可以做到应用透明,编写应用的可以不用管是否有cache,可以在应用做好之后再上cache。当然开发者显式使用cache也行。buffer需要编写应用的人设计,是程序的一部分。


三.linux系统如何查看内存
查看的内存的方式有很多种,萝卜青菜各有所爱,所有我介绍几种,可以根据个人喜欢选择。
从图形化到命令的顺序简单介绍。

1.gnome-system-monitor
显示CPU历史,内存和交换历史,以及网络历史。能实时查看内存的使用情况,但是没能看到buffer和cache的使用情况。
技术分享图片

  1. cat /proc/meminfo
    查看动态更新的虚拟文件。内容比较全面,可以查看到许多关于内存的信息。
    技术分享图片
    3.free
    快速查看内存的方法,也是经常使用的命令。-h 更人性化的显示内存的单位 -m 以M的形式显示
    技术分享图片

4.top
top命令提供了实时的运行中的程序的资源使用统计。可以根据内存的使用和大小来进行排序。
技术分享图片

论坛参考:https://www.zhihu.com/question/26190832
英文参考:http://www.differencebetween.net/technology/hardware-technology/difference-between-cache-and-buffer/
共勉:I hear and I forget , I see and I remember, I do and I understand!

buffer和cache的区别

标签:buffer和cache区别   查看内存   

原文地址:http://blog.51cto.com/13667098/2095043

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!