首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >硬盘快速读取

硬盘快速读取
EN

Stack Overflow用户
提问于 2012-07-10 06:05:48
回答 1查看 588关注 0票数 3

我创建了一个基于两个文件的虚拟文件系统(非常类似于fat)。

  1. 第一个文件分配表。

它存储有关文件分配的信息(实际上它不是文件,但不关心它)

每一项记录的结构如下:

  1. 名称-固定大小(100个字节)。前4个字节是字符串长度。
  2. 长度-4字节,文件的总长度
  3. 启动群集的StartCluster -4字节id
  4. 终端集群的EndCluster -4字节id

每个条目都有固定的大小,我在内存中有哈希表,这有助于我找到每个条目的位置。

  1. 第二个文件-虚拟驱动器

基于簇的VD。每个集群都有固定的大小- 256字节。最后4个字节是指向文件链中下一个集群的指针。

当我试图读取所有文件时,这个问题的速度非常慢。怎样才能提高成绩?有没有在硬盘上快速阅读的提示。

例如:大块读取文件是个好主意吗?当我读取文件的一小部分时,文件是由OS缓存的,对吗?下一次,我只是从内存中获取数据,而不是从高清中获取数据?

我有几个这样的问题可以得到答案?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-13 12:33:16

一些备选方案;

  • 您可以放大集群大小(256个字节很小,现在大多数OS都使用4KB+作为集群)。
  • 如果读取所有文件,则可以根据startCluster对文件进行排序,以便按磁盘上文件物理上彼此相近的顺序读取文件。因此,每当操作系统获取一个4K+块时,您就更有可能需要下一个文件中的其他部分。
  • 您可以删除虚拟磁盘文件。
  • 你看上去很自信这是个磁盘问题。当你刚读完文件后,你有没有检查过它是怎么处理的,而不是慢的部分?
  • 大量随机访问是SSD存储的亮点。将虚拟磁盘移动到SSD
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11407526

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档