磁盘文件 多次读取,每次读固定小下 与 一次读取全部 性能高低
如果磁盘上有一文件大小为2MB,所有处理过程以一行为单位
1. 每次读取一行(小于512B), 处理,再次读取一行,再处理.....直到处理完(N次)
2. 每次读取固定缓冲区大小,如(8192KB)
3. 一次读取2MB,处理
这两种方式,哪种效率高?
我个人感觉,第3种方式效率最低,因为占了太多内存.
看了一些文章说多次读写磁盘会有性能瓶颈,
但我想不明白,为什么会这样,因为我觉得,不管哪种方式,都是从磁盘上读取2MB的数据,对磁盘的访问量都是一样的.有些文章说磁盘读写是有缓冲的,也就是说不管你一次读取1字节,还是1MB字节,读写函数每次读写的数据量都是一样的.
换个说法就是,假设文件大小为2MB,磁盘读写以4KB为单位,那我现在要读一行(512B)的时候,读写函数仍然会读4KB,--读完整个文件发生了2MB/4KB次操作;
如果我现在要读取固定缓冲(40KB),那么磁盘读写操作会发生10次,每次仍是4K,--读完整个文件发生了2MB/4KB次操作
如果我现在要读取全部,那么磁盘读写操作会发生2MB/4KB次,每次仍是4K, --读完整个文件发生了2MB/4KB次操作
不知道我的分析对不对.