打个比方,港口运货,一种方法是先将货物装在集装箱里都运到港口等待货轮到达,另一种是货轮到达港口才开始从仓库往港口运货,显而易见,前者效率高。缓冲区也是为了缓解设备间读写速度不匹配而设置的一种处理方式,就像港口。而缓存,是将获取的一部分数据保留下来,以便下次需要的时候直接读取,而不用到硬盘中去读取,减少读写次数,提高效率。
要复杂解释的话还挺麻烦的,毕竟缓冲区也有很多不同层级。设法简单举个例子: 1、如果你的程序每次都只是read(1024)这样,而且硬盘确确实实忠实的据此执行了,那么你说的情况大致差不多。 2、但如果操作系统按照文件系统的扇区大小设置了缓冲区,比如64K,那么在连续读取的情况下,你的程序执行64次,硬盘实际动作只需要一次。 以上两种情况,后者速度是前者的xxoo倍?
[quote=引用 2 楼 TRANSCEND100 的回复:] [quote=引用 1 楼 qq_34350475 的回复:] 打个比方,港口运货,一种方法是先将货物装在集装箱里都运到港口等待货轮到达,另一种是货轮到达港口才开始从仓库往港口运货,显而易见,前者效率高。缓冲区也是为了缓解设备间读写速度不匹配而设置的一种处理方式,就像港口。而缓存,是将获取的一部分数据保留下来,以便下次需要的时候直接读取,而不用到硬盘中去读取,减少读写次数,提高效率。
[quote=引用 1 楼 qq_34350475 的回复:] 打个比方,港口运货,一种方法是先将货物装在集装箱里都运到港口等待货轮到达,另一种是货轮到达港口才开始从仓库往港口运货,显而易见,前者效率高。缓冲区也是为了缓解设备间读写速度不匹配而设置的一种处理方式,就像港口。而缓存,是将获取的一部分数据保留下来,以便下次需要的时候直接读取,而不用到硬盘中去读取,减少读写次数,提高效率。
62,635
社区成员
307,269
社区内容
加载中
试试用AI创作助手写篇文章吧