CodeCache初始化。 mtCode参数传递给new,但是mtInternal在GrowableArray构造函数中使用

时间:2019-06-27 10:31:30

标签: java c++ jvm jvm-hotspot

我对CodeCache::_heaps初始化有些困惑。传递给新分配函数的内存类型参数为mtCode,如here所示:

GrowableArray<CodeHeap*>* CodeCache::_heaps = 
    new(ResourceObj::C_HEAP, mtCode) GrowableArray<CodeHeap*> (CodeBlobType::All, true);

GrowableArray构造函数使用mtInternal作为内存类型默认参数here

GrowableArray(int initial_size, bool C_heap = false, MEMFLAGS F = mtInternal)
    : GenericGrowableArray(initial_size, 0, C_heap, F)

我感到困惑的是为什么我们使用C_HEAP newmtCode分配MEMFLAG,的内存,但是GrowableArray的构造函数默认为{{ 1}} mtInternal。这样做有什么意义?

0 个答案:

没有答案