http://hi.baidu.com/%BA%C6%E5%AB%D0%C7%DC%BF/blog/item/505af61b297535108618bf13.html
cache是高速缓存,用于CPU和内存之间的缓冲;
buffer是I/O缓存,用于内存和硬盘的缓冲 cache最初用于cpu cache, 主要原因是cpu 与memory, 由于cpu快,memory跟不上,且有些值使用次数多,所以放入 cache中,主要目的是,重复使用, 并且一级/二级物理cache速度快, buffer 主要用于disk 与 memory, 主要是保护硬盘或减少网络传输的次数(内存数据表现dataSet).当然也可以提高速度(不会立即写入硬盘或直接从硬盘中读出的数据马上显示),重复使用,最初最主要的目的是保护disk, asp.net的cache有outputcahe与数据cache, 主要目的是 重复使用,提高速度,outputcache主要存储Reader后的页,一般是多次使用同一个HTML,建议不要varybyparam,不要存多version, 数据cache,如dataSet, dataTable, 等 @page buffer="true", 使用buffer,让buffer满后再显示读出或写入,(c中文件输出也是如此,主要目的是保护硬盘), 也可以提高下次的访问速度. 在client browse端表现是: true是一次性显示,要么不显示, 中间等, false是一次显示一些, <%@ OutputCache Duration="60" VaryByParam="none"%>, 是将asp.net生成的HTML缓存起来,在指定的时间内不需要重新生成html, control.ascx.也有组件缓存(htmlCach)。 dataSet也是如此。DataCache, cache和buffer都是缓冲区, 在翻译上,cache翻译成高速缓冲区要好一点(因为主要是为下次访问加速), buffer翻译成缓冲区好点。都是缓冲的作用,可目的有点不同,主要是理解,不需要太咬文嚼字.
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/cxzhq2002/archive/2006/06/02/769879.aspx cache 和 buffer的区别 1,Buffer是缓冲区 2,Cache 是高速缓存,分library cache; data dictionary cache; database buffer cache Buffer cache 缓冲区高速缓存,用于缓存从硬盘上读取的数据,减少磁盘I/O. 3,.buffer有共享SQL区和PL/SQL区 , 数据库缓冲区高速缓存有独立的subcache 5,cache: access to commonly used data stored in a lower-speed, higher-capacity component. database buffer cache: blocks to the instance share access to the database buffer cache. buffer cache就是以block为单位读入写出的。 缓存(cached)是把读取过的数据保存起来,重新读取时若命中(找到需要的数据)就不 要去读硬盘了,若没有命中就读硬盘。其中的数据会根据读取频率进行组织,把最频繁读 取的内容放在最容易找到的位置,把不再读的内容不断往后排,直至从中删除。 缓冲(buffers)是根据磁盘的读写设计的,把分散的写操作集中进行,减少磁盘碎片和 硬盘的反复寻道,从而提高系统性能。linux有一个守护进程定期清空缓冲内容(即写如 磁盘),也可以通过sync命令手动清空缓冲。举个例子吧:我这里有一个ext2的U盘,我 往里面cp一个3M的MP3,但U盘的灯没有跳动,过了一会儿(或者手动输入sync)U盘的灯 就跳动起来了。卸载设备时会清空缓冲,所以有些时候卸载一个设备时要等上几秒钟。 修改/etc/sysctl.conf中的vm.swappiness右边的数字可以在下次开机时调节swap使用策 略。该数字范围是0~100,数字越大越倾向于使用swap。默认为60,可以改一下试试。 读出来的。 有多个字段读入,在所有字段被读入完整之前,进程把先前读入的字段放在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. 更详细的解释参考:Difference Between Buffer and Cache 对于共享内存(Shared memory),主要用于在UNIX 环境下不同进程之间共享数据, 是进程间通信的一种方法,一般的应用程序不会申请使用共享内存,笔者也没有去验证共 享内存对上面等式的影响。如果你有兴趣,请参考:What is Shared Memory? cache 和 buffer的区别: Cache:高速缓存,是位于CPU与主内存间的一种容量较小但速度很高的存储器。由于 CPU的速度远高于主内存,CPU直接从内存中存取数据要等待一定时间周期, Cache中保存 着CPU刚用过或循环使用的一部分数据,当CPU再次使用该部分数据时可从Cache中直接调 用,这样就减少了CPU的等待时间,提高了系统的效率。Cache又分为一级Cache(L1 Cache) 和二级Cache(L2 Cache),L1 Cache集成在CPU内部,L2 Cache早期一般是焊在主板上,现 在也都集成在CPU内部,常见的容量有256KB或512KB L2 Cache。 Buffer:缓冲区,一个用于存储速度不同步的设备或优先级不同的设备之间传输数据 的区域。通过缓冲区,可以使进程之间的相互等待变少,从而使从速度慢的设备读入数据 时,速度快的设备的操作进程不发生间断。 Free中的buffer和cache:(它们都是占用内存): buffer : 作为buffer cache的内存,是块设备的读写缓冲区 cache: 作为page cache的内存, 文件系统的cache 如果 cache 的值很大,说明cache住的文件数很多。如果频繁访问到的文件都能被 cache住,那么磁盘的读IO bi会非常小。
|