netty的零拷贝

本文深入探讨了零拷贝技术的原理与应用,特别是在文件网络传输中的优化效果。介绍了传统IO流程中的性能瓶颈,以及零拷贝如何通过避免数据在用户空间与内核空间之间的多次拷贝来提高效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有两个。
一个是指mmap+write零拷贝,
还有一个是指compoiste,将两个buffer合并成一个

https://www.cnblogs.com/lighten/p/8909254.html:
这系列的可以多看下
在介绍IO模型之前,首先要明白几个概念,才会清楚为什么NIO可以减少CPU的性能浪费。现代操作系统为了保证系统的正确执行,分成了两种操作模式:用户模式和监督程序模式(内核模式)。这么做的原因是为了保护操作系统和用户程序不受其它程序的影响,实现方法是:将能引起损害的机器指令作为特权指令,用户执行特权指令的时候,硬件不会执行该指令,而是认为该指令是非法指令,会以陷阱的方式通知操作系统,由操作系统内核处理,最后转交给用户程序,IO操作就是一个特权指令。操作系统进程有其独享的内核空间,用户程序数据及相关内容放在用户空间中,用户发起一个IO请求,首先就会切换到内核模式,将数据读取到内核空间中去,之后将这部分数据拷贝到用户空间中,切换到用户模式继续执行用户程序,这就是一个基本的IO流程。这里插入一段文件网络传输零拷贝的知识:将文件通过网络传输涉及了两次IO,一次磁盘IO,一次网络IO,由于上述所讲的操作系统的安全策略,内核会先读取文件数据到内核空间,再拷贝到用户空间,传输到网络中去的时候,又将数据从用户空间拷贝到了内核空间,这造成了多次拷贝的浪费,实际上我们只需要将数据读取到内核空间,直接传输到网络中去就可以了。零拷贝的做法就是将文件描述符和网络描述符同时交给内核,指示内核将文件描述符的内容全部传输给网络通道中,这样就达到了零拷贝的效果了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值