性能:一次读取所有文件或者反复使用b :: fs函数是否更好?

时间:2010-05-21 09:27:30

标签: c++ boost performance filesystems

我在“一次读取,使用内存+指向文件”和“必要时读取”方法之间存在冲突。后者当然要容易得多(不需要额外的类来存储整个dir结构),但IMO速度较慢?我正在尝试列出文件名和相对路径(因此编译器可以根据需要使用它们)。

一点澄清:我正在编写一个简单的构建系统,它读取项目文件,检查是否存在所有文件,并运行一些编译步骤。文件树是静态的,因此第一个选项不需要非常动态,每次运行程序时只需要构建一次。感谢

1 个答案:

答案 0 :(得分:1)

您可以放心地假设操作系统无论如何都会缓存目录内容,因此通过文件系统API的访问将归结为内存操作。

所以问题的答案“它更快吗?”可能是“不,不可测量”。

OTOH,考虑到目录内容可以随时间变化,即使在很短的时间内也是如此。因此,热切地或懒惰地阅读目录内容并不是速度问题,而是语义问题。可能是您发现必须/不得读取整个目录,具体取决于您正在做什么。