10-直接内存
1、直接内存不是虚拟机运行时数据区的一部分,而是在Java堆外,直接向系统申请的内存空间
2、来源于NIO,通过存在堆中的 DirectByteBuffer
操作本地内存
1 | private static final int BUFFER = 1024 * 1024 * 1024;//1GB |
3、通常访问直接内存的速度会优于访问java堆的速度(读写性能更高,适用于读写频繁的场合)
4、java的NIO库运行java程序使用直接内存用于数据缓冲
5、直接内存大小可以通过MaxDirectMemorySize
设置,如果不指定,默认与堆的最大值-Xmx
参数值一致,但是由于直接内存在java堆外,因此它不会直接受限于-Xmx指定的最大堆大小,它和java堆受限于操作系统能给出的最大内存
6、简单理解: java process memory = java heap + native memory
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Z.yang!