用户工具


为什么用transferTo复制文件要快很多?

从文件A复制到文件B

使用transferTo的流程如下

  1. 把文件(A)从磁盘映射到堆外内存(A)
  2. 从堆外内存(A)复制到堆外内存(B)

传统的方式是

  1. 先从磁盘把文件(A)读入内核缓冲区(A) transferTo没有这个步骤
  2. 从内核缓冲区(A)复制到堆外内存(A)
  3. 从堆外内存(A)复制到堆内内存(A) transferTo 不需要经过堆内
  4. 从堆内内存(A)复制到堆外内存(B)