18 * 19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 20 * or visit www.oracle.com if you need additional information or have any 21 * questions. 22 * 23 */ 24 25 #ifndef SHARE_VM_MEMORY_METASPACESHARED_HPP 26 #define SHARE_VM_MEMORY_METASPACESHARED_HPP 27 28 #include "classfile/compactHashtable.hpp" 29 #include "memory/allocation.hpp" 30 #include "memory/memRegion.hpp" 31 #include "memory/virtualspace.hpp" 32 #include "utilities/exceptions.hpp" 33 #include "utilities/macros.hpp" 34 35 #define DEFAULT_SHARED_READ_WRITE_SIZE (NOT_LP64(6*M) LP64_ONLY(10*M)) 36 #define MIN_SHARED_READ_WRITE_SIZE (NOT_LP64(6*M) LP64_ONLY(10*M)) 37 38 #define DEFAULT_SHARED_READ_ONLY_SIZE (NOT_LP64(6*M) LP64_ONLY(10*M)) 39 #define MIN_SHARED_READ_ONLY_SIZE (NOT_LP64(6*M) LP64_ONLY(10*M)) 40 41 // the MIN_SHARED_MISC_DATA_SIZE and MIN_SHARED_MISC_CODE_SIZE estimates are based on 42 // the sizes required for dumping the archive using the default classlist. The sizes 43 // are multiplied by 1.5 for a safety margin. 44 45 #define DEFAULT_SHARED_MISC_DATA_SIZE (NOT_LP64(2*M) LP64_ONLY(4*M)) 46 #define MIN_SHARED_MISC_DATA_SIZE (NOT_LP64(1*M) LP64_ONLY(1200*K)) 47 48 #define DEFAULT_SHARED_MISC_CODE_SIZE (120*K) 49 #define MIN_SHARED_MISC_CODE_SIZE (NOT_LP64(63*K) LP64_ONLY(69*K)) 50 #define DEFAULT_COMBINED_SIZE (DEFAULT_SHARED_READ_WRITE_SIZE+DEFAULT_SHARED_READ_ONLY_SIZE+DEFAULT_SHARED_MISC_DATA_SIZE+DEFAULT_SHARED_MISC_CODE_SIZE) 51 52 // the max size is the MAX size (ie. 0x7FFFFFFF) - the total size of 53 // the other 3 sections - page size (to avoid overflow in case the final 54 // size will get aligned up on page size) 55 #define SHARED_PAGE ((size_t)os::vm_page_size()) 56 #define MAX_SHARED_DELTA (0x7FFFFFFF) 57 #define MAX_SHARED_READ_WRITE_SIZE (MAX_SHARED_DELTA-(MIN_SHARED_READ_ONLY_SIZE+MIN_SHARED_MISC_DATA_SIZE+MIN_SHARED_MISC_CODE_SIZE)-SHARED_PAGE) 58 #define MAX_SHARED_READ_ONLY_SIZE (MAX_SHARED_DELTA-(MIN_SHARED_READ_WRITE_SIZE+MIN_SHARED_MISC_DATA_SIZE+MIN_SHARED_MISC_CODE_SIZE)-SHARED_PAGE) 59 #define MAX_SHARED_MISC_DATA_SIZE (MAX_SHARED_DELTA-(MIN_SHARED_READ_WRITE_SIZE+MIN_SHARED_READ_ONLY_SIZE+MIN_SHARED_MISC_CODE_SIZE)-SHARED_PAGE) 60 #define MAX_SHARED_MISC_CODE_SIZE (MAX_SHARED_DELTA-(MIN_SHARED_READ_WRITE_SIZE+MIN_SHARED_READ_ONLY_SIZE+MIN_SHARED_MISC_DATA_SIZE)-SHARED_PAGE) 61 62 #define LargeSharedArchiveSize (300*M) 63 #define HugeSharedArchiveSize (800*M) 64 #define ReadOnlyRegionPercentage 0.4 65 #define ReadWriteRegionPercentage 0.55 66 #define MiscDataRegionPercentage 0.03 67 #define MiscCodeRegionPercentage 0.02 68 #define LargeThresholdClassCount 5000 69 #define HugeThresholdClassCount 40000 70 71 #define SET_ESTIMATED_SIZE(type, region) \ 72 Shared ##region## Size = FLAG_IS_DEFAULT(Shared ##region## Size) ? \ 73 (uintx)(type ## SharedArchiveSize * region ## RegionPercentage) : Shared ## region ## Size 74 75 class FileMapInfo; 76 77 class MetaspaceSharedStats VALUE_OBJ_CLASS_SPEC { 78 public: 79 MetaspaceSharedStats() { 80 memset(this, 0, sizeof(*this)); 81 } 82 CompactHashtableStats symbol; 83 CompactHashtableStats string; 84 }; 85 | 18 * 19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 20 * or visit www.oracle.com if you need additional information or have any 21 * questions. 22 * 23 */ 24 25 #ifndef SHARE_VM_MEMORY_METASPACESHARED_HPP 26 #define SHARE_VM_MEMORY_METASPACESHARED_HPP 27 28 #include "classfile/compactHashtable.hpp" 29 #include "memory/allocation.hpp" 30 #include "memory/memRegion.hpp" 31 #include "memory/virtualspace.hpp" 32 #include "utilities/exceptions.hpp" 33 #include "utilities/macros.hpp" 34 35 #define DEFAULT_SHARED_READ_WRITE_SIZE (NOT_LP64(6*M) LP64_ONLY(10*M)) 36 #define MIN_SHARED_READ_WRITE_SIZE (NOT_LP64(6*M) LP64_ONLY(10*M)) 37 38 #define DEFAULT_SHARED_READ_ONLY_SIZE (NOT_LP64(8*M) LP64_ONLY(13*M)) 39 #define MIN_SHARED_READ_ONLY_SIZE (NOT_LP64(8*M) LP64_ONLY(13*M)) 40 41 // the MIN_SHARED_MISC_DATA_SIZE and MIN_SHARED_MISC_CODE_SIZE estimates are based on 42 // the sizes required for dumping the archive using the default classlist. The sizes 43 // are multiplied by 1.5 for a safety margin. 44 45 #define DEFAULT_SHARED_MISC_DATA_SIZE (NOT_LP64(2*M) LP64_ONLY(4*M)) 46 #define MIN_SHARED_MISC_DATA_SIZE (NOT_LP64(1*M) LP64_ONLY(1200*K)) 47 48 #define DEFAULT_SHARED_MISC_CODE_SIZE (120*K) 49 #define MIN_SHARED_MISC_CODE_SIZE (NOT_LP64(63*K) LP64_ONLY(69*K)) 50 #define DEFAULT_COMBINED_SIZE (DEFAULT_SHARED_READ_WRITE_SIZE+DEFAULT_SHARED_READ_ONLY_SIZE+DEFAULT_SHARED_MISC_DATA_SIZE+DEFAULT_SHARED_MISC_CODE_SIZE) 51 52 // the max size is the MAX size (ie. 0x7FFFFFFF) - the total size of 53 // the other 3 sections - page size (to avoid overflow in case the final 54 // size will get aligned up on page size) 55 #define SHARED_PAGE ((size_t)os::vm_page_size()) 56 #define MAX_SHARED_DELTA (0x7FFFFFFF) 57 #define MAX_SHARED_READ_WRITE_SIZE (MAX_SHARED_DELTA-(MIN_SHARED_READ_ONLY_SIZE+MIN_SHARED_MISC_DATA_SIZE+MIN_SHARED_MISC_CODE_SIZE)-SHARED_PAGE) 58 #define MAX_SHARED_READ_ONLY_SIZE (MAX_SHARED_DELTA-(MIN_SHARED_READ_WRITE_SIZE+MIN_SHARED_MISC_DATA_SIZE+MIN_SHARED_MISC_CODE_SIZE)-SHARED_PAGE) 59 #define MAX_SHARED_MISC_DATA_SIZE (MAX_SHARED_DELTA-(MIN_SHARED_READ_WRITE_SIZE+MIN_SHARED_READ_ONLY_SIZE+MIN_SHARED_MISC_CODE_SIZE)-SHARED_PAGE) 60 #define MAX_SHARED_MISC_CODE_SIZE (MAX_SHARED_DELTA-(MIN_SHARED_READ_WRITE_SIZE+MIN_SHARED_READ_ONLY_SIZE+MIN_SHARED_MISC_DATA_SIZE)-SHARED_PAGE) 61 62 #define LargeSharedArchiveSize (300*M) 63 #define HugeSharedArchiveSize (800*M) 64 #define ReadOnlyRegionPercentage 0.52 65 #define ReadWriteRegionPercentage 0.43 66 #define MiscDataRegionPercentage 0.03 67 #define MiscCodeRegionPercentage 0.02 68 #define LargeThresholdClassCount 5000 69 #define HugeThresholdClassCount 40000 70 71 #define SET_ESTIMATED_SIZE(type, region) \ 72 Shared ##region## Size = FLAG_IS_DEFAULT(Shared ##region## Size) ? \ 73 (uintx)(type ## SharedArchiveSize * region ## RegionPercentage) : Shared ## region ## Size 74 75 class FileMapInfo; 76 77 class MetaspaceSharedStats VALUE_OBJ_CLASS_SPEC { 78 public: 79 MetaspaceSharedStats() { 80 memset(this, 0, sizeof(*this)); 81 } 82 CompactHashtableStats symbol; 83 CompactHashtableStats string; 84 }; 85 |