零拷貝 最大2G文件 FileChannel.transferTo(long position, long count, WritableByteChannel target)


正常拷貝:  磁盤  -> 內核空間  - > user空間 -> 內核空間 -> 目的緩沖區

零拷貝方式  :  磁盤  -> 內核空間  - >目的緩沖區

  為FileChannel.transferTo(long position, long count, WritableByteChannel target)//將數據從文件通道傳輸到了給定的可寫字節通道

  1. DMA從拷貝至內核緩沖區
  2. cpu將數據從內核緩沖區拷貝至內核空間(socket緩沖區)
  3. DMA將數據從內核拷貝至協議引擎
  4. 這三個過程中共發生2次上下文切換,分別為發起讀取文件和發送數據

 

 

 

 

 原來的拷貝方式

零拷貝方式    磁盤  -> 內核空間  - >目的緩沖區

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM