49 // ||| block 1 | |
50 // ||---------- |
51 // || |
52 // |-------------------|
53 // | |
54 // | |
55 // +-------------------+
56 //
57
58 class ChunkManager;
59 class ClassLoaderData;
60 class Metablock;
61 class Metachunk;
62 class MetaspaceTracer;
63 class MetaWord;
64 class Mutex;
65 class outputStream;
66 class PrintCLDMetaspaceInfoClosure;
67 class SpaceManager;
68 class VirtualSpaceList;
69
70 // Metaspaces each have a SpaceManager and allocations
71 // are done by the SpaceManager. Allocations are done
72 // out of the current Metachunk. When the current Metachunk
73 // is exhausted, the SpaceManager gets a new one from
74 // the current VirtualSpace. When the VirtualSpace is exhausted
75 // the SpaceManager gets a new one. The SpaceManager
76 // also manages freelists of available Chunks.
77 //
78 // Currently the space manager maintains the list of
79 // virtual spaces and the list of chunks in use. Its
80 // allocate() method returns a block for use as a
81 // quantum of metadata.
82
83 class Metaspace : public CHeapObj<mtClass> {
84 friend class VMStructs;
85 friend class SpaceManager;
86 friend class VM_CollectForMetadataAllocation;
87 friend class MetaspaceGC;
88 friend class MetaspaceAux;
|
49 // ||| block 1 | |
50 // ||---------- |
51 // || |
52 // |-------------------|
53 // | |
54 // | |
55 // +-------------------+
56 //
57
58 class ChunkManager;
59 class ClassLoaderData;
60 class Metablock;
61 class Metachunk;
62 class MetaspaceTracer;
63 class MetaWord;
64 class Mutex;
65 class outputStream;
66 class PrintCLDMetaspaceInfoClosure;
67 class SpaceManager;
68 class VirtualSpaceList;
69 class CollectedHeap;
70
71 // Metaspaces each have a SpaceManager and allocations
72 // are done by the SpaceManager. Allocations are done
73 // out of the current Metachunk. When the current Metachunk
74 // is exhausted, the SpaceManager gets a new one from
75 // the current VirtualSpace. When the VirtualSpace is exhausted
76 // the SpaceManager gets a new one. The SpaceManager
77 // also manages freelists of available Chunks.
78 //
79 // Currently the space manager maintains the list of
80 // virtual spaces and the list of chunks in use. Its
81 // allocate() method returns a block for use as a
82 // quantum of metadata.
83
84 class Metaspace : public CHeapObj<mtClass> {
85 friend class VMStructs;
86 friend class SpaceManager;
87 friend class VM_CollectForMetadataAllocation;
88 friend class MetaspaceGC;
89 friend class MetaspaceAux;
|