直接内存不受 JVM 内存回收管理,是虚拟机的系统内存,常见于 NIO 操作时,用于数据
缓冲区,分配回收成本较高,但读写性能高,不受 JVM 内存回收管理。
举例
当上传一个较大文件(200M)对比常规IO和NIO时。使用NIO(直接内存)的时间要远远低于常规IO的操作时长。
NIO是与JVM有一定关系的 。
传统IO的数据传输流程图如下

可以看到,当使用传统阻塞IO上传文件时,会在操作系统和java堆中的内存中都创建一个缓冲区进行磁盘文件的读写,这是非常耗时的。
直接内存NIO的数据传输流程图如下

可以看到
在这个里面主要使用到了一个直接内存,不需要在堆中开辟空间进行数据的拷贝,jvm 可以直接操作操作系统中的内存,从而使数据读写传输更快。
什么是直接内存(NIO)
追豆者2024-05-16 7:09
相关推荐
plainGeekDev4 分钟前
SQLite 手动升级 → Room Migration带刺的坐椅8 分钟前
SolonCode(编码智能体)支持鸿蒙 PC程序员二叉8 分钟前
【JVM】类加载全过程&双亲委派机制深度解析开发者联盟league10 分钟前
使用jenkins pipeline将项目打包运行在k8s上报错kubectl: Permission deniedch.ju14 分钟前
Java程序设计(第3版)第四章——继承的特点Chase_______25 分钟前
【Java杂项】Arrays.asList、List.of 和 new ArrayList:集合可变性避坑发际线向北25 分钟前
0x07 深入了解JVM虚拟机(JVM异常处理)Seven9725 分钟前
每个线程只管自己的变量,性能却不如单线程?问题出在缓存行2601_9618451529 分钟前
2026四级作文预测题|英语四级写作押题+提纲PDF用户5313973181735 分钟前
「踩坑实录」原来的SQL索引自动优化失败了,线上数据库差点被打挂