JVM 堆外内存

1. 何谓堆外内存

在之前的文章里面讲了JVM结构,着重讲了JVM堆结构,这里的堆外内存就是相对于JVM堆而言的,主要包含jvm本身在运行过程中分配的内存,codecache,jni里分配的内存,DirectByteBuffer分配的内存等等。

堆内内存相对应,堆外内存就是把内存对象分配在Java虚拟机的堆以外的内存,这些内存直接受操作系统管理(而不是虚拟机),这样做的结果就是能够在一定程度上减少垃圾回收对应用程序造成的影响。

日常开发中主要接触到的是java.nio.DirectByteBuffer在创建的时候分配内存,这篇文章也主要讲述DirectByteBuffer。......

JVM结构

运行时数据区中的程序计数器、虚拟机栈和本地方法栈是线程私有的,堆和方法区是线程共享的。

1 运行时数据区

1.1 程序计数器(Program Counter Register)

程序计数器(Program Counter (PC))是在电脑处理器中的一个寄存器,用来指示电脑下一步要运行的指令序列。依照特定机器的细节而不同,他可能是保存着正在......