Direct Memory读写流程分析

简介: Direct Memory读写流程分析

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

BybeBuffer方式

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

Direct Memory方式

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

目录
相关文章
|
5月前
|
存储 缓存 算法
内存系列学习(四):Cache和Write Buffer一般性介绍
内存系列学习(四):Cache和Write Buffer一般性介绍
234 0
|
1月前
|
监控 Linux C++
perf_event_open学习 —— mmap方式读取
perf_event_open学习 —— mmap方式读取
|
1月前
|
Linux
perf_event_open学习 —— 缓冲区管理
perf_event_open学习 —— 缓冲区管理
|
5月前
|
存储 C++
webserver--Buffer类实现内存缓冲区读写(全代码)
webserver--Buffer类实现内存缓冲区读写(全代码)
|
3月前
|
监控 安全 Java
JVM内存问题之排查Direct Memory泄漏有哪些常用方法
JVM内存问题之排查Direct Memory泄漏有哪些常用方法
|
5月前
|
缓存 Java
直接内存(Direct Memory)牛刀小试
直接内存(Direct Memory)牛刀小试
34 0
|
存储 缓存 固态存储
【Linux】基础IO --- 内核级和用户级缓冲区、磁盘结构、磁盘的分治管理、block group块组剖析…
【Linux】基础IO --- 内核级和用户级缓冲区、磁盘结构、磁盘的分治管理、block group块组剖析…
|
存储 Java 调度
【JVM原理探索】分析堆外内存(Direct Memory)使用和分析
【JVM原理探索】分析堆外内存(Direct Memory)使用和分析
1337 0
【JVM原理探索】分析堆外内存(Direct Memory)使用和分析
|
存储 缓存 关系型数据库
磁盘&CPU调节(1)—Buffer Pool(五十四)
磁盘&CPU调节(1)—Buffer Pool(五十四)