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是一次显示一些,
这在网络输出也是如此表现.
对于文件访问c中默认采用的是buffer
=
true,
这与asp.net一样,
相当于Response.write();中当buffer满后输出,以减少网络的传输次数
<%@
OutputCache
Duration="60"
VaryByParam="none"%>,
是将asp.net生成的HTML缓存起来,在指定的时间内不需要重新生成html,
control.ascx.也有组件缓存(htmlCach)。
dataSet也是如此。DataCache,
cache和buffer都是缓冲区,
在翻译上,cache翻译成高速缓冲区要好一点(因为主要是为下次访问加速),
buffer翻译成缓冲区好点。都是缓冲的作用,可目的有点不同,主要是理解,不需要太咬文嚼字.