139 void dump(outputStream* const out) const; 140 141 void print_on(outputStream* st) const; 142 // Debugging support 143 void verify(); 144 }; 145 146 class MetaspaceAux : AllStatic { 147 148 // Statistics for class space and data space in metaspace. 149 static size_t used_in_bytes(Metaspace::MetadataType mdtype); 150 static size_t free_in_bytes(Metaspace::MetadataType mdtype); 151 static size_t capacity_in_bytes(Metaspace::MetadataType mdtype); 152 static size_t reserved_in_bytes(Metaspace::MetadataType mdtype); 153 154 static size_t free_chunks_total(Metaspace::MetadataType mdtype); 155 static size_t free_chunks_total_in_bytes(Metaspace::MetadataType mdtype); 156 157 public: 158 // Total of space allocated to metadata in all Metaspaces 159 static size_t used_in_bytes(); 160 161 // Total of available space in all Metaspaces 162 // Total of capacity allocated to all Metaspaces. This includes 163 // space in Metachunks not yet allocated and in the Metachunk 164 // freelist. 165 static size_t capacity_in_bytes(); 166 167 // Total space reserved in all Metaspaces 168 static size_t reserved_in_bytes(); 169 170 static size_t min_chunk_size(); 171 172 // Print change in used metadata. 173 static void print_metaspace_change(size_t prev_metadata_used); 174 static void print_on(outputStream * out); 175 static void print_on(outputStream * out, Metaspace::MetadataType mdtype); 176 177 static void print_waste(outputStream* out); 178 static void dump(outputStream* out); 179 static void verify_free_chunks(); 180 }; 181 182 // Metaspace are deallocated when their class loader are GC'ed. 183 // This class implements a policy for inducing GC's to recover 184 // Metaspaces. 185 186 class MetaspaceGC : AllStatic { 187 188 // The current high-water-mark for inducing a GC. When | 139 void dump(outputStream* const out) const; 140 141 void print_on(outputStream* st) const; 142 // Debugging support 143 void verify(); 144 }; 145 146 class MetaspaceAux : AllStatic { 147 148 // Statistics for class space and data space in metaspace. 149 static size_t used_in_bytes(Metaspace::MetadataType mdtype); 150 static size_t free_in_bytes(Metaspace::MetadataType mdtype); 151 static size_t capacity_in_bytes(Metaspace::MetadataType mdtype); 152 static size_t reserved_in_bytes(Metaspace::MetadataType mdtype); 153 154 static size_t free_chunks_total(Metaspace::MetadataType mdtype); 155 static size_t free_chunks_total_in_bytes(Metaspace::MetadataType mdtype); 156 157 public: 158 // Total of space allocated to metadata in all Metaspaces 159 static size_t used_in_bytes() { 160 return used_in_bytes(Metaspace::ClassType) + 161 used_in_bytes(Metaspace::NonClassType); 162 } 163 164 // Total of available space in all Metaspaces 165 // Total of capacity allocated to all Metaspaces. This includes 166 // space in Metachunks not yet allocated and in the Metachunk 167 // freelist. 168 static size_t capacity_in_bytes() { 169 return capacity_in_bytes(Metaspace::ClassType) + 170 capacity_in_bytes(Metaspace::NonClassType); 171 } 172 173 // Total space reserved in all Metaspaces 174 static size_t reserved_in_bytes() { 175 return reserved_in_bytes(Metaspace::ClassType) + 176 reserved_in_bytes(Metaspace::NonClassType); 177 } 178 179 static size_t min_chunk_size(); 180 181 // Print change in used metadata. 182 static void print_metaspace_change(size_t prev_metadata_used); 183 static void print_on(outputStream * out); 184 static void print_on(outputStream * out, Metaspace::MetadataType mdtype); 185 186 static void print_waste(outputStream* out); 187 static void dump(outputStream* out); 188 static void verify_free_chunks(); 189 }; 190 191 // Metaspace are deallocated when their class loader are GC'ed. 192 // This class implements a policy for inducing GC's to recover 193 // Metaspaces. 194 195 class MetaspaceGC : AllStatic { 196 197 // The current high-water-mark for inducing a GC. When |