写缓存与读缓存效率上的不同点
2005年2月7日
最近感觉系统上虽然装了很多内存,但是 Windows 磁盘操作的效率仍然不是很高。当然这与内存的动态调度是有关系的,某些缓存了的数据可能被抛弃。不过还有一点:写入的速度比较慢,这是因为写缓存与读缓存实现上的不同导致的。
写缓存,由于缓存了磁盘上数据的更改,而系统又不是百分之一百可靠的,因此要定时向磁盘上写入,以免数据因为系统故障而丢失。所以,一般在 Windows 中,如果磁盘比较空闲,那么每秒钟就会向磁盘写入部分写缓冲的数据。如果磁盘不是很空闲,也会保证写缓冲的数据在 1 分钟之内被写入。而读数据时,只要内存中有数据,就直接读,不读磁盘,无论过了多长时间。这是因为磁盘上的内容没有被期望更改。
因此写缓存的效率比读缓存要差一些。这是正常现象。如果你去 hack 一下 Linux,也许可以把写缓存的写回时间改得更长,这样可以达到更高的效率,不过也让数据丢失的可能性加大了。