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

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

可以看到
在这个里面主要使用到了一个直接内存,不需要在堆中开辟空间进行数据的拷贝,jvm 可以直接操作操作系统中的内存,从而使数据读写传输更快。
什么是直接内存(NIO)
追豆者2024-05-16 7:09
相关推荐
头发还在的女程序员9 小时前
医院陪诊管理系统怎么选择?——2026 年选型避坑与架构参考CodeStats9 小时前
【Spring事务】Spring事务注解 @Transactional 完整体系:从 MySQL 隔离级别到 MyBatis 原理详解我命由我1234510 小时前
Android 开发问题:为 PDFView 设置一个带有黑色边框的背景 drawable,但边框没有生效都叫我大帅哥12 小时前
从Python到Java:为什么企业级Agent最终会选择Java?wanderist.12 小时前
Lambda表达式在算法竞赛中的应用腻害兔14 小时前
【若依项目-产品经理视角】RuoYi-Vue-Pro 源码拆解:IM 即时通讯模块,一个被低估的「全功能聊天系统」心念枕惊14 小时前
.NET CORE 授权进阶-角色、策略与动态权限实现景同学16 小时前
把 AI 用到线上运维:可行、有效,前提是喂足信息——一次 Full GC 排障实录C++、Java和Python的菜鸟16 小时前
第7章 后端Web实战(Tlias系统)憧憬成为java架构高手的小白17 小时前
黑马八股--spring框架学习