< 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 >