什么是直接内存(NIO)

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

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

可以看到
在这个里面主要使用到了一个直接内存,不需要在堆中开辟空间进行数据的拷贝,jvm 可以直接操作操作系统中的内存,从而使数据读写传输更快。

相关推荐
plainGeekDev4 分钟前
SQLite 手动升级 → Room Migration
android·java·kotlin
带刺的坐椅8 分钟前
SolonCode(编码智能体)支持鸿蒙 PC
java·web·ai编程·harmonyos·soloncode·鸿蒙 pc
程序员二叉8 分钟前
【JVM】类加载全过程&双亲委派机制深度解析
java·jvm·面试
开发者联盟league10 分钟前
使用jenkins pipeline将项目打包运行在k8s上报错kubectl: Permission denied
java·kubernetes·jenkins
ch.ju14 分钟前
Java程序设计(第3版)第四章——继承的特点
java·开发语言
Chase_______25 分钟前
【Java杂项】Arrays.asList、List.of 和 new ArrayList:集合可变性避坑
java·windows·list
发际线向北25 分钟前
0x07 深入了解JVM虚拟机(JVM异常处理)
java
Seven9725 分钟前
每个线程只管自己的变量,性能却不如单线程?问题出在缓存行
java
2601_9618451529 分钟前
2026四级作文预测题|英语四级写作押题+提纲PDF
java·c语言·数据库·c++·python·pdf·php
用户5313973181735 分钟前
「踩坑实录」原来的SQL索引自动优化失败了,线上数据库差点被打挂
java·后端