基本概念
零拷贝,通常在java NIO编程中会使用,比如netty网络工具包。 其真实意思是:
网卡或者其他外设进行io操作时不经过CPU, 而是直接和主memory交互,不经过CPU寄存器,这样可以释放CPU,让CPU做其他更有意义的事。 CPU不会成为网络性能瓶颈,网卡的性能也能打满

0-copy一般是基于DMA, DMA控制器一般是集成在设备端(比如网卡),或者主板上, 硬件上一般不在CPU芯片上

linux内核对应的dma api 有 dma_map_single 。。。 设备驱动申请内存之后 完成IO操作之前,cpu不能再访问这片内存, 完成IO操作之后 dma控制器会通知CPU 其他线程再进行后面的读写操作

rocketMq broker发送消息给消费者时 是从commitLog 内存映射文件中读取 然后放入网卡,其高性能读写也是基于netty的FileRegion 0-copy

参考
https://en.wikipedia.org/wiki/Zero-copy
http://www.voidcn.com/article/p-cnfwakoo-bma.html
https://nieyong.github.io/wiki_cpu/CPU%E4%BD%93%E7%B3%BB%E6%9E%B6%E6%9E%84-DMA.html

最新文章

  1. [LeetCode] Implement strStr() 实现strStr()函数
  2. thinkphp3.2.3在框架截取文字
  3. 【BZOJ-2440】完全平方数 容斥原理 + 线性筛莫比乌斯反演函数 + 二分判定
  4. 五步搞定Android开发环境部署——非常详细的Android开发环境搭建教程
  5. First insmod a module
  6. POJ 1936
  7. STUN/TURN/ICE协议在P2P SIP中的应用(一)
  8. C-二维数组,多维数组
  9. springcloud(二):注册中心Eureka
  10. FORM中调用JAVA组件
  11. 《java入门第一季》之HashSet存储元素保证唯一性的代码及图解
  12. Preload,Prefetch 和它们在 Chrome 之中的优先级
  13. 1.1 Django起步
  14. 图片处理服务 ImageMagick 的安装和使用
  15. hihoCoder编程练习赛70
  16. ionic3 创建项目至apk打包全过程教程
  17. [No0000108]Git1/9-Git简介与入门
  18. Linux设置Oracle环境变量
  19. idea在哪执行maven clean?
  20. Jboss 4.2.3配置与优化

热门文章

  1. C# chart.DataManipulator.FinancialFormula()公式的使用 线性回归预测方法
  2. java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoader
  3. CodeForces 427A Police Recruits (水题)
  4. gitlab 安装提速
  5. idea 启动报错问题
  6. 纯分享scp协议如何工作
  7. How to design a product table for many kinds of product where each product has many parameters
  8. 优化案例--改写IN条件为INNER JOIN
  9. 解除SVN的控制
  10. SCVMM 安装