我基于两个文件创建了一个虚拟文件系统(非常类似于 fat)。
- 第一个文件 - 分配表。
它存储有关文件分配的信息(实际上它不是文件但不关心它)
每条记录具有以下结构:
- 名称 - 固定大小(100 字节)。前 4 个字节是字符串长度
- 长度 - 4 个字节,文件的总长度
- StartCluster - 起始集群的 4 字节 id
- EndCluster - 端簇的 4 字节 id
每个条目都有固定的大小,我在内存中有哈希表,这可以帮助我找到每个条目的位置。
- 第二个文件 - 虚拟驱动器
基于集群的 VD。每个集群都有固定的大小 - 256 字节。最后 4 个字节是指向文件链中下一个簇的指针。
当我尝试读取所有文件时,问题是速度非常慢。我怎样才能提高性能?有什么技巧可以快速从硬盘读取。
例如:按大块读取文件是个好主意吗?当我读取文件的一小部分时,文件被操作系统缓存对吗?下一次我只是从内存而不是从 HD 中获取数据?
那么我有几个这样的问题我可以得到答案?