我在“一次读取,使用内存+指向文件”和“必要时读取”方法之间存在冲突。后者当然要容易得多(不需要额外的类来存储整个dir结构),但IMO速度较慢?我正在尝试列出文件名和相对路径(因此编译器可以根据需要使用它们)。
一点澄清:我正在编写一个简单的构建系统,它读取项目文件,检查是否存在所有文件,并运行一些编译步骤。文件树是静态的,因此第一个选项不需要非常动态,每次运行程序时只需要构建一次。感谢
答案 0 :(得分:1)
您可以放心地假设操作系统无论如何都会缓存目录内容,因此通过文件系统API的访问将归结为内存操作。
所以问题的答案“它更快吗?”可能是“不,不可测量”。
OTOH,考虑到目录内容可以随时间变化,即使在很短的时间内也是如此。因此,热切地或懒惰地阅读目录内容并不是速度问题,而是语义问题。可能是您发现必须/不得读取整个目录,具体取决于您正在做什么。