传说中的零拷贝

https://blog.csdn.net/weixin_42096901/article/details/103017044
https://www.jianshu.com/p/193cae9cbf07

  • 硬件
    • 中断
    • DMA
  • linux
    • read,write:图一,4次copy,2次系统调用即4次上下文切换
    • mmap:图二,3次copy,2次系统调用4次上下文切换
    • sendFile:
      • 图三,3次copy,1次系统调用2次上下文切换。
      • 图四,配合硬件的DMA支持,实现2次copy。
    • https://www.cnblogs.com/rickiyang/p/13265043.html在这里插入图片描述
  • JDK
    • FileChannel
      • https://blog.csdn.net/qq_21125183/article/details/88701448
      • https://www.cnblogs.com/cscw/p/13883420.html
      • map():mmap
      • transferTo()
      • transferFrom()
    • DirectByteBuffer:直接内存
  • netty
    • https://zhuanlan.zhihu.com/p/88599349
    • 使用直接内存ByteBuffer进行收发操作,避免了堆内存和直接内存的拷贝动作
    • FileChannel.transferTo 包装成 FileRegion,使用FileRegion直接把文件缓冲区数据发生到目标Channel
    • 直接内存 ByteBuf 合并操作零拷贝,CompositeByteBuf类,来合并多个ByteBuf,只是把多个ByteBuf进行逻辑上的合并,实际上没有进行内存拷贝
  • kafka。FileChannel.transferTo() 使用了零拷贝
  • rocketmq,mmap写文件,采用netty通信
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值