本来想到硬件那里问的,但哪里少人。这里对这一定熟的。所以我就在这里问了。 cache是高速缓冲的。它不是要一直满的吗? 怎么我看见有变化?
buff就不懂了? 如果你指的 cache 是硬件高速缓存,它是为了调和机器不同硬件之间速度的巨大差异,如 CPU 和 内存之间有高速缓存,通常是由硬件控制的。
而编程中设置的 buffer 一般是用来存放临时数据或做数据交换的空间,它只是内存中的一块很普通的区域,通常是由编程者自己控制。 和硬件高速缓存是两码子事。 cache由操作系统控制 buf由你自己控制
操作系统会把经常访问的东西放在cache中加快执行速度 如果 cache中已潢那么会把不常用的使出来放到普通内存或是交换分区中 对cache的性能访问最快 可能是mem的100倍 对mem的访问速度可能是disk的1000倍
swap放在disk中 所以你应该知道系统为了提高性能会想一切办法提高cache的使用率了 那cache这么小,CIII 1.1G L2 =512K吧,怎么都用不完,因为我用free看到cache有变化。 free看到的cache是操作系统在内存里为硬盘作的cache,不是CPU的cache 我的简单理解是: 一个是硬件的,一个是软件的。 cache更倾向于指一个物理实体,而buffer则是使用者自定义的。 |