我在一个项目中工作,在这个项目中我必须从驱动器中枚举文件名。我尝试了两种方法
我的意见如下:
从两台分离的机器上进行的P.s测量。
有了这些观察,我有点困惑于MFT的解析是否取决于它的大小?为什么线程处理不能为更小尺寸的MFT提供更好的解决方案?
发布于 2014-04-02 19:45:26
使用FindFirstFile多线程不太可能给您带来任何好处。如果有两个单独的线程跟踪同一个物理磁盘,那么就会产生不必要的磁盘头查找,这意味着需要更多的时间来满足读取,这很可能会导致使用FindFirstFile和FindNextFile的多线程版本比单线程版本慢。
步行MFT可能比使用FindFirst/FindNext更快,但代价却是相当多的额外工作。而且,除非您对磁盘有一些特殊的知识,否则可能不会更快地证明编写代码以在较低级别上工作的费用。在一般情况下很可能会慢一些。我怀疑NTFS开发人员和撰写FindFirstFile / FindNextFile的人对MFT了解一两件事,而我们大多数人对此并不了解,包括如何有效地执行它。
https://stackoverflow.com/questions/22754492
复制相似问题