gpt4 book ai didi

java - File.lastModified() 非常慢!

转载 作者:搜寻专家 更新时间:2023-11-01 02:17:22 28 4
gpt4 key购买 nike

我正在对文件进行递归复制,例如 xcopy /D我只想复制较新的文件目标文件(我不能直接使用xcopy,因为我需要在复制过程中更改一些文件)。

在java中我使用lastModified()检查目标文件是否比源文件旧并且速度很慢。

  • 我可以加快这个过程吗(也许使用 JNI??)?
  • 是否有任何其他复制脚本可以更好地完成这项工作(复制新文件 + 正则表达式更改一些文本文件)?

无论如何都不能复制文件,因为这比检查上次修改日期(通过网络复制)花费更多时间。

最佳答案

您需要确定它为什么这么慢。

当您运行程序时,您进程的 CPU 使用率是多少。如果它超过 50% 的用户,那么你应该能够优化你的程序,如果它少于 20%,你就没有那么多可以做的了。

通常这种方法很慢,因为您正在检查的文件在磁盘上而不是在内存中。如果是这种情况,您需要加快访问磁盘的速度,或者获得更快的驱动器。例如SSD 在执行此操作时可以快 10-100 倍。

批量查询可能会有所帮助。您可以通过使用多个线程来检查 lastModified 日期来执行此操作。例如有一个固定大小的线程池并为每个文件添加一个任务。线程池的大小决定了一次轮询的文件数。

这允许操作系统重新排序请求以适应磁盘上的布局。注意:这在理论上很好,但您必须测试这是否会使您的操作系统/硬件上的速度更快,因为它可能会使速度变慢。 ;)

关于java - File.lastModified() 非常慢!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4305448/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com