hotspot/src/share/vm/services/memoryService.cpp
void MemoryService::add_compact_perm_gen_memory_pool(CompactingPermGenGen* perm_gen,
MemoryManager* mgr) {
{- -------------------------------------------
(1) MemoryService::add_space() で ContiguousSpacePool のインスタンスを生成し,
引数で渡された MemoryManager に登録する.
(なお, UseSharedSpaces オプションが指定されている場合には,
共有されている部分用に (read-only と read-write に分けて)
さらに 2つの ContiguousSpacePool オブジェクトを MemoryService::add_space() で生成し,
引数で渡された MemoryManager に登録しておく)
---------------------------------------- -}
PermanentGenerationSpec* spec = perm_gen->spec();
size_t max_size = spec->max_size() - spec->read_only_size() - spec->read_write_size();
MemoryPool* pool = add_space(perm_gen->unshared_space(),
"Perm Gen",
false, /* is_heap */
max_size,
true /* support_usage_threshold */);
mgr->add_pool(pool);
if (UseSharedSpaces) {
pool = add_space(perm_gen->ro_space(),
"Perm Gen [shared-ro]",
false, /* is_heap */
spec->read_only_size(),
true /* support_usage_threshold */);
mgr->add_pool(pool);
pool = add_space(perm_gen->rw_space(),
"Perm Gen [shared-rw]",
false, /* is_heap */
spec->read_write_size(),
true /* support_usage_threshold */);
mgr->add_pool(pool);
}
}
This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.