Direct Memory读写流程分析

之前我们看出来了直接内存和传统IO操作的区别,我们针对底层流程加以说明。

BybeBuffer方式

在这里插入图片描述如图所示,我们一般的IO读取过程时,程序需由用户态切换成内核态,当从ByteBuffer中读取数据时,系统会先从磁盘把文件读取到系统内存区,再从系统内存读取到Java堆内存,需要多一次内存拷贝过程。

Direct Memory方式

在这里插入图片描述
Direct Memory方式情况下,Java程序会直接从系统内存中开辟一块内存空间,对应的是我们的ByteBuffer.allocateDirect(_256M);这句代码,这部分内存系统内存可以访问,Java程序也可以直接访问,直接就减少了交互过程,这个就是直接内存会工作快点的原因。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值