正常拷貝: 磁盤 -> 內核空間 - > user空間 -> 內核空間 -> 目的緩沖區
零拷貝方式 : 磁盤 -> 內核空間 - >目的緩沖區
為FileChannel.transferTo(long position, long count, WritableByteChannel target)//將數據從文件通道傳輸到了給定的可寫字節通道
- DMA從拷貝至內核緩沖區
- cpu將數據從內核緩沖區拷貝至內核空間(socket緩沖區)
- DMA將數據從內核拷貝至協議引擎
- 這三個過程中共發生2次上下文切換,分別為發起讀取文件和發送數據
原來的拷貝方式
零拷貝方式 磁盤 -> 內核空間 - >目的緩沖區