JVM堆的管理者——CodeCache1 CodeCache的作用CodeCache是一个静态类,其内部成员全部是静态变量,这也意味着这些成员变量在程序加载并首次使用后即在内存中固定了位置。2 关键成员下面是一些重要的成员变量2.1 堆(heap)堆是在运行时中分配类对象或数组对象在内存中的区域。在openjdk的hotspot中,所有的堆都继承于CHeapObj类template MEMFLAGS F class CHeapObj其中模板值为MemoryType的宏定义,即声明一个堆类的时,需要继承CHeapObj并指定所属类型,例如代码堆的声明如下enum MemoryType { // Memory type by sub systems. It occupies lower byte. ... mtCode = 0x04, // memory for generated code ... } class CodeHeap : public CHeapObjmtCodeCodeCache管理着一系列的代码堆,下面是这些堆的定义static GrowableArrayCodeHeap** _heaps; static GrowableArrayCodeHeap** _compiled_heaps; static GrowableArrayCodeHeap** _nmethod_heaps; static GrowableArrayCodeHeap** _allocable_heaps;2.2 _low_bound和_hight_bound这两个变量记录了整个CodeCache所管理区在内存中的低地址和高地址
JVM堆的管理者——CodeCache
发布时间:2026/5/16 15:17:56
JVM堆的管理者——CodeCache1 CodeCache的作用CodeCache是一个静态类,其内部成员全部是静态变量,这也意味着这些成员变量在程序加载并首次使用后即在内存中固定了位置。2 关键成员下面是一些重要的成员变量2.1 堆(heap)堆是在运行时中分配类对象或数组对象在内存中的区域。在openjdk的hotspot中,所有的堆都继承于CHeapObj类template MEMFLAGS F class CHeapObj其中模板值为MemoryType的宏定义,即声明一个堆类的时,需要继承CHeapObj并指定所属类型,例如代码堆的声明如下enum MemoryType { // Memory type by sub systems. It occupies lower byte. ... mtCode = 0x04, // memory for generated code ... } class CodeHeap : public CHeapObjmtCodeCodeCache管理着一系列的代码堆,下面是这些堆的定义static GrowableArrayCodeHeap** _heaps; static GrowableArrayCodeHeap** _compiled_heaps; static GrowableArrayCodeHeap** _nmethod_heaps; static GrowableArrayCodeHeap** _allocable_heaps;2.2 _low_bound和_hight_bound这两个变量记录了整个CodeCache所管理区在内存中的低地址和高地址