2

DirectoryStream 和 File.list() 之间是否存在性能差异

我曾尝试在 Linux 平台上对这两个 java 程序进行 strace,它使用具有相同参数的 getdents64 系统调用。在我看来,两者的性能相同,但编程范式不同

4

3 回答 3

2

你可能会觉得这很有趣:

将 java.io.File 功能映射到 java.nio.file

于 2012-08-02T06:57:50.413 回答
1

如果他们都调用同一个系统调用,为什么会有区别?遍历目录基本上是 I/O 绑定的。

于 2012-08-02T10:11:17.453 回答
1

性能优势DirectoryStream以内存使用的形式出现,并且能够在列出目录时处理返回的路径对象,而不是构建完整列表并将其存储在内存中,然后对其进行迭代。这在列出包含大量文件的目录或递归遍历目录树时非常有用。

更多信息在这里:http ://blog.eyallupu.com/2011/11/java-7-working-with-directories.html

于 2014-12-18T04:11:37.937 回答