我的应用程序扫描文件系统的一部分,我的用户报告说他们在扫描网络驱动器时速度非常慢。测试我的代码,我确定了瓶颈:方法 File.isFile()
、File.isDirectory()
和 File.isHidden()
,它们都在调用 fs.getBooleanAttributes(File f)
。此方法在 Windows 网络驱动器上似乎非常慢。我怎样才能提高性能?我能否以某种方式避免调用此方法?
最佳答案
防御性代码通常会调用那些 isXYZ()
方法,这通常是一种很好的做法。但是,正如您所发现的,有时性能很差。
另一种方法是假设该文件是一个文件,它存在、可见、可读等,然后尝试读取它。如果不是那些东西,你会得到一个异常,你可以捕获它,然后进行检查以找出到底出了什么问题。这样,您就可以针对常见情况(即一切正常)进行优化,并且仅在出现问题时才执行缓慢的操作。
关于java - 加速文件系统访问?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1929814/