nio零拷贝

概述
nio的零拷贝并不是实际意义上的零拷贝而是指jvm由用户空间到内核空间实现的零拷贝。
user space :用户空间
Kernel space: 内核空间
Hardware: 储存空间 可看作时硬盘

下图为普通的io模型

在这里插入图片描述

由图可见在普通io模型中会先从jvm中发送read()的本地方法之后用户空间模式转为内核空间模式之后由内核空间发起对硬盘数据的访问并复制到内核空间 之后内核空间将数据复制到用户空间 jvm通过操作用户空间内存进行对数据的访问或者修改后 将用户空间数据复制到内核空间 由内核空间将数据保存的硬盘中最后操作结果回调。
Nio模型

在这里插入图片描述
由上图可见nio模型中在内核空间中拷贝了一份目标数据文件后再拷贝了一次作为 socketchannel所对应的buffer中去 从而实现了内核到用户空间的零拷贝。也减少了由用户空间模式到内核空间模式的次数。
内存文件映射(Mapbytebuffer)
通过内存映射文件可以直接将文件数据映射到内核空间并且在用户空间可以操作内核空间中的这个内存映射。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值