安装的网络驱动器中的Java文件副本比OS filemanager copy

时间:2018-05-08 16:01:08

标签: java nas

以下是该方案: 我们有一个带有数据集的NAS,需要将其复制到本地磁盘以加快处理速度。数据集为2到15GB,每个数据集位于NAS上自己的文件夹中。

要复制到本地磁盘,我打电话:

FileUtils.copyDirectory(nasDir, localDiskDir);

两个参数是File个实例。 nasDir是网络映射的SMB驱动器。使用Java复制数据集时,最大传输速度最高可达8MB / s。使用Windows资源管理器或Nautilus的相同副本(取决于服务器)最高可达34-35MB / s 持续

有没有人知道为什么会这样,而且,如何通过Java更快地复制目录?即使我们比本机慢5-10%也是可以接受的,但目前的差异表明某处的性能显着下降。

编辑:最初认为它可能与Apache Commons I / O库有关,但使用https://docs.oracle.com/javase/tutorial/essential/io/examples/Copy.java进行测试表明它在某种程度上是一个更基本的问题。

0 个答案:

没有答案