zero-copy总结
2024-09-02 04:47:58
基本概念
零拷贝,通常在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
最新文章
- [LeetCode] Implement strStr() 实现strStr()函数
- thinkphp3.2.3在框架截取文字
- 【BZOJ-2440】完全平方数 容斥原理 + 线性筛莫比乌斯反演函数 + 二分判定
- 五步搞定Android开发环境部署——非常详细的Android开发环境搭建教程
- First insmod a module
- POJ 1936
- STUN/TURN/ICE协议在P2P SIP中的应用(一)
- C-二维数组,多维数组
- springcloud(二):注册中心Eureka
- FORM中调用JAVA组件
- 《java入门第一季》之HashSet存储元素保证唯一性的代码及图解
- Preload,Prefetch 和它们在 Chrome 之中的优先级
- 1.1 Django起步
- 图片处理服务 ImageMagick 的安装和使用
- hihoCoder编程练习赛70
- ionic3 创建项目至apk打包全过程教程
- [No0000108]Git1/9-Git简介与入门
- Linux设置Oracle环境变量
- idea在哪执行maven clean?
- Jboss 4.2.3配置与优化
热门文章
- C# chart.DataManipulator.FinancialFormula()公式的使用 线性回归预测方法
- java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoader
- CodeForces 427A Police Recruits (水题)
- gitlab 安装提速
- idea 启动报错问题
- 纯分享scp协议如何工作
- How to design a product table for many kinds of product where each product has many parameters
- 优化案例--改写IN条件为INNER JOIN
- 解除SVN的控制
- SCVMM 安装