首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MFT的大小对MFT的解析

MFT的大小对MFT的解析
EN

Stack Overflow用户
提问于 2014-03-31 05:53:59
回答 1查看 623关注 0票数 0

我在一个项目中工作,在这个项目中我必须从驱动器中枚举文件名。我尝试了两种方法

  1. MFT解析和
  2. 用FindFirstFile进行多线程。我比较了这两种实现的执行时间,结果显示MFT的大小更小,执行速度更快,如果MFT的大小大于GB,则需要更多的时间来执行。

我的意见如下:

  • 卷C: MFT大小:1.85GB执行时间:65秒,核心线程数量:9秒
  • 卷D: MFT大小: 38 MB执行时间: 0.593秒,核心线程数量:1秒
  • 卷C:MFT大小: 1.02 GB执行时间:11秒,核心线程数量:3秒
  • 卷D:MFT大小:89.75MB执行时间:1秒与核心线程数量:2秒

从两台分离的机器上进行的P.s测量。

有了这些观察,我有点困惑于MFT的解析是否取决于它的大小?为什么线程处理不能为更小尺寸的MFT提供更好的解决方案?

EN

回答 1

Stack Overflow用户

发布于 2014-04-02 19:45:26

使用FindFirstFile多线程不太可能给您带来任何好处。如果有两个单独的线程跟踪同一个物理磁盘,那么就会产生不必要的磁盘头查找,这意味着需要更多的时间来满足读取,这很可能会导致使用FindFirstFileFindNextFile的多线程版本比单线程版本慢。

步行MFT可能比使用FindFirst/FindNext更快,但代价却是相当多的额外工作。而且,除非您对磁盘有一些特殊的知识,否则可能不会更快地证明编写代码以在较低级别上工作的费用。在一般情况下很可能会慢一些。我怀疑NTFS开发人员和撰写FindFirstFile / FindNextFile的人对MFT了解一两件事,而我们大多数人对此并不了解,包括如何有效地执行它。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22754492

复制
相关文章

相似问题

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