直接内存
2021-09-15 13:28:42 0 举报
直接内存
作者其他创作
大纲/内容
write
read
直接内存
内核缓存空间
磁 盘 交 互
应用程序
Copy
直 接 缓 冲 区
直接内存不是Java运行时数据区的一部分,也不是《Java虚拟机规范》中的一部分。它是直接向系统内存申请的空间。来源于NIO,通过Java堆中的DirectByteBuffer操作Native内存。直接内存的读写速度优于Java堆,即读写频率快,因此,在读写操作非常频繁的场景下会使用直接内存代替Java堆,同时也适用于大文件的读写操作。使用IO与磁盘交互时,需要从用户态切换到内核态,内存空间地址需要复制一份再与应用程序交互,而使用NIO时,直接内存的缓冲区域可以直接由Java代码访问,提高了执行效率。 缺点: 直接内存也会造成OOM异常,因为Java堆和直接内存的总和依然收到系统内存所能分配的最大内存NIO 也会造成内存分配的成本大,同时不受JVM回收管理。
概述
非直接缓冲区
0 条评论
下一页