< prev index next >

src/hotspot/share/memory/metaspace/metaspaceCommon.hpp

Print this page
rev 57380 : [mq]: metaspace-improvement

*** 31,48 **** class outputStream; namespace metaspace { - enum ChunkSizes { // in words. - ClassSpecializedChunk = 128, - SpecializedChunk = 128, - ClassSmallChunk = 256, - SmallChunk = 512, - ClassMediumChunk = 4 * K, - MediumChunk = 8 * K - }; // Print a size, in words, scaled. void print_scaled_words(outputStream* st, size_t word_size, size_t scale = 0, int width = -1); // Convenience helper: prints a size value and a percentage. --- 31,40 ----
*** 96,147 **** uintx num_chunk_splits; }; extern internal_statistics_t g_internal_statistics; #endif - // ChunkIndex defines the type of chunk. - // Chunk types differ by size: specialized < small < medium, chunks - // larger than medium are humongous chunks of varying size. - enum ChunkIndex { - ZeroIndex = 0, - SpecializedIndex = ZeroIndex, - SmallIndex = SpecializedIndex + 1, - MediumIndex = SmallIndex + 1, - HumongousIndex = MediumIndex + 1, - NumberOfFreeLists = 3, - NumberOfInUseLists = 4 - }; - - // Utility functions. - size_t get_size_for_nonhumongous_chunktype(ChunkIndex chunk_type, bool is_class); - ChunkIndex get_chunk_type_by_size(size_t size, bool is_class); - - ChunkIndex next_chunk_index(ChunkIndex i); - ChunkIndex prev_chunk_index(ChunkIndex i); - // Returns a descriptive name for a chunk type. - const char* chunk_size_name(ChunkIndex index); - - // Verify chunk sizes. - inline bool is_valid_chunksize(bool is_class, size_t size) { - const size_t reasonable_maximum_humongous_chunk_size = 1 * G; - return is_aligned(size, sizeof(MetaWord)) && - size < reasonable_maximum_humongous_chunk_size && - is_class ? - (size == ClassSpecializedChunk || size == ClassSmallChunk || size >= ClassMediumChunk) : - (size == SpecializedChunk || size == SmallChunk || size >= MediumChunk); - } - - // Verify chunk type. - inline bool is_valid_chunktype(ChunkIndex index) { - return index == SpecializedIndex || index == SmallIndex || - index == MediumIndex || index == HumongousIndex; - } - - inline bool is_valid_nonhumongous_chunktype(ChunkIndex index) { - return is_valid_chunktype(index) && index != HumongousIndex; - } - // Pretty printing helpers const char* classes_plural(uintx num); const char* loaders_plural(uintx num); void print_number_of_classes(outputStream* out, uintx classes, uintx classes_shared); --- 88,97 ----
< prev index next >