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

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

可以看到
在这个里面主要使用到了一个直接内存,不需要在堆中开辟空间进行数据的拷贝,jvm 可以直接操作操作系统中的内存,从而使数据读写传输更快。
什么是直接内存(NIO)
追豆者2024-05-16 7:09
相关推荐
evans在进步7 小时前
LeetCode 394:字符串解码——Java 单栈模拟与嵌套解析详解m0_547486668 小时前
《Java程序设计与实践 》全套PPT课件2026土司大王9 小时前
LeetCode hto100——字母异位词分组码匠许师傅9 小时前
【C++ 面试真题】聊聊 C++ 中的 lambda 表达式QCodingDev9 小时前
Spring AI Alibaba ReAct Agent实战:从Tool Calling到Agent,企业AI复杂业务该如何设计?RainCity9 小时前
Java Swing 自定义组件库分享(十六)赵广陆11 小时前
企业实战:Markdown图片检索C++、Java和Python的菜鸟11 小时前
第3章 从0开始用若依Json____11 小时前
五金制品行业-企业官网源码counting money12 小时前
Spring AI Alibaba 从入门到实战:构建企业级 AI 应用