Skip to content

Instantly share code, notes, and snippets.

@torazuka
Created November 10, 2013 17:51
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save torazuka/7401435 to your computer and use it in GitHub Desktop.
Save torazuka/7401435 to your computer and use it in GitHub Desktop.
The file include tree of memory directory in JVM HotSpot
blockdiag {
default_fontsize = 14;
allocation [color = "#ff0000"];
generation, heap, iterator, memRegion, resourceArea, space, watermark [color = "#ff9900"];
// include generation
generationSpec, compactPermGen, genCollectedHeap, "generation.inline", "genOopClosures.inline", permGen, sharedHeap, tenuredGeneration [color = "#ffff00"];
// include iterator
genOopClosures, permGen [color = "#ffff00"];
// include memRegion
barrierSet, "blockOffsetTable", cardTableRS [color = "#ffff00"];
// include resourceArea
// include space
"space.inline" [color = "#ffff00"];
// include watermark
generationSpec [color = "#ffff00"];
allocation -> "runtime/globals", "utilities/globalDefinitions", "c1/c1_globals", "opto/c2_globals";
"allocation.inline" -> "runtime/os";
barrierSet -> memRegion, "oops/oopsHierarchy";
"barrierSet.inline" -> barrierSet, cardTableModRefBS;
"blockOffsetTable" -> memRegion, "runtime/virtualspace", "utilities/globalDefinitions";
"blockOffsetTable.inline" -> blockOffsetTable, space, "runtime/safepoint", "concurrentMarkSweep/concurrentMarkSweepGeneration";
cardTableModRefBS -> modRefBarrierSet, "oops/oop", "oops/oop.inline2";
cardTableRS -> cardTableModRefBS, genRemSet, memRegion;
classify -> "oops/oop.inline";
collectorPolicy -> barrierSet, genRemSet, permGen;
compactingPermGenGen -> "shared/generationCounters", space;
compactPermGen -> generation, permGen;
defNewGeneration -> "shared/ageTable", "shared/cSpaceCounters", "shared/generationCounters", "generation.inline", "utilities/stack";
"defNewGeneration.inline" -> cardTableRS, defNewGeneration, space;
filemap -> compactingPermGenGen, space;
gcLocker -> "gc_interface/collectedHeap", genCollectedHeap, universe, "oops/oop", "os_linux.inline", "thread_linux.inline", "os_solaris.inline", "thread_solaris.inline", "os_windows.inline", "thread_windows.inline";
"gcLocker.inline" -> gcLocker;
genCollectedHeap -> "shared/adaptiveSizePolicy", collectorPolicy, generation, sharedHeap;
generationSpec -> generation -> "shared/collectorCounters", allocation, memRegion, referenceProcessor, universe, watermark, "runtime/mutex", "runtime/perfData", "runtime/virtualspace";
"generation.inline" -> genCollectedHeap, generation, space;
generatoinSpec -> generation, permGen;
genMarkSweep -> "shared/markSweep";
genOopClosures -> iterator, "oops/oop";
"genOopClosures.inline" -> cardTableRS, defNewGeneration, genCollectedHeap, genOopClosures, genRemSet, generation, sharedHeap, space;
genRemSet -> "oops/oop";
heap -> allocation, "runtime/virtualspace";
heapInspection -> "allocation.inline", "oops/oop.inline";
iterator -> allocation, memRegion, "runtime/prefetch";
memRegion -> allocation, "utilities/debug", "utilities/globalDefinitions";
modRefBarrierSet -> barrierSet;
oopFactory -> "classfile/symbolTable", "classfile/systemDictionary", universe, "oops/klassOop", "oops/objArrayKlass", "oops/oop", "oops/typeArrayKlass", "oops/growableArray";
permGen -> "gc_interface/gcCause", generation, iterator, "runtime/handles", "runtime/mutexLocker", "runtime/virtualspace";
referenceProcessor -> referencePolicy, "oops/instanceRefKlass";
resourceArea -> allocation;
sharedHeap -> "gc_interface/collectedHeap", generation, permGen;
space -> allocation, blockOffsetTable, cardTableModRefBS, iterator, memRegion, watermark, "oops/markOop", "runtime/mutexLocker", "runtime/prefetch", "utilities/workgroup", "os_linux.inline", "os_solaris.inline", "os_windows.inline";
"space.inline" -> "gc_interface/collectedHeap", space, universe, "runtime/safepoint";
specialized_oop_closures -> "runtime/atomic", "g1/g1_specialized_oop_closures";
tenuredGeneration -> "shared/cSpaceCounters", "shared/gcStats", "shared/generationCounters", generation;
threadLocalAllocBuffer -> "shared/gcUtil", "oops/typeArrayOop", "runtime/perfData";
"threadLocalAllocBuffer.inline" -> "gc_interface/collectedHeap", threadLocalAllocBuffer, "runtime/atomic", "runtime/thread", "utilities/copy";
universe -> "runtime/handles", "utilities/growableArray";
"universe.inline" -> universe;
watermark -> allocation, "utilities/globalDefinitions";
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment