java.nio.FileChannel transferFrom()vs transferTo()

时间:2018-11-15 19:54:27

标签: java performance file-copying

我一直在运行一些性能基准测试,用于在NFS位置和本地硬盘驱动器之间复制文件。我发现的非常令人惊讶的事情之一是Java FileChannel transferFrom() API比transferTo()快得多!对于5GB的文件传输,我发现transferFrom()的速度提高了5倍。

为了进行更多研究,我使用strace跟踪了这两个操作中使用的syscall,发现transferTo()使用sendFile syscall和transferFrom()使用pwrite

我不确定这种差异来自何处。有谁知道为什么会这样,或者我可以做些什么来调查这种差异?

谢谢!

0 个答案:

没有答案