繁体   English   中英

为什么WalkingFileTree第二次更快?

[英]Why WalkingFileTree is faster the second time?

我正在使用Files.walkfiletree()的功能Files.walkfiletree()java.NIO我正在查看一棵非常大的树,因此当我第一次运行该应用程序时(第一次是指我每次打开计算机时),该应用程序都需要一些时间,但是第二次确实非常快。 为什么? 某些缓存有效吗? 我可以永久使用吗?

当您从文件系统读取数据时,该信息正在缓存,从而使访问它的速度更快。 在某些情况下,速度提高100倍或更多。 它将数据缓存在内存中,因为它速度更快。

最简单的解决方案是在需要时访问/加载此目录结构,这样您将获得缓存的性能。 例如,您可以在启动时执行此操作。

另一个解决方案是获得更快的SSD。 访问文件结构会执行许多磁盘操作,以获取所有信息。 HDD最多可以完成120 IOPS,便宜的SSD可以完成40,000 IOPS,而快速SSD可以完成250,000 IOPS。 这样可以大大减少加载此信息的时间。

但是,由于无法控制内存中的内容,除非通过重复访问它,否则稍后可能会将其从磁盘缓存中推出。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM