DirectoryStream和File.list()之间有性能差异吗
我试着在Linux平台上调试这两个java程序,它使用了具有相同参数的getdents64系统调用。在我看来,两者的性能相同,但编程模式不同
您可能会发现这很有趣:
将java.io.File功能映射到java.nio.File
DirectoryStream
的性能优势在于内存使用率,以及在列出目录时处理返回路径对象的能力,而不是构建完整的列表并将其存储在内存中,然后对其进行迭代。这在列出包含大量文件的目录或递归遍历目录树时是有益的。
更多信息请点击此处:http://blog.eyallupu.com/2011/11/java-7-working-with-directories.html
如果它们都调用同一个系统调用,为什么会有区别?遍历目录基本上是I/O绑定的。