直接内存:
直接内存(Direct Memory) 指的是 JVM 之外、直接向操作系统申请的一块内存区域。它不受 JVM 堆(Heap)大小的限制,而是由操作系统的 本机内存(Native Memory) 管理。
1. 为什么需要直接内存?
直接内存的主要目的是提高 I/O 读写性能,因为它可以绕过 Java 堆,直接和操作系统交互,减少数据在 JVM 内部的复制次数。
在 Java 里面,所有数据最终都需要从内存到 CPU 处理,而 Java 传统的堆内存操作涉及多次复制:
- Java 堆 ⬌ JVM 本地方法 ⬌ 操作系统内核缓冲区 ⬌ 磁盘或网络
- 传统方式下,每次 I/O 操作,数据必须从堆复制到本地缓冲区,然后再写入操作系统,这会影响性能。
直接内存的优势: ✅ 减少数据拷贝,提升 I/O 速度
✅ 避免 GC 干扰(垃圾回收不会管理直接内存)
常见的使用场景:
- NIO(New IO)&