< prev index next >

src/share/vm/memory/metaspaceShared.hpp

Print this page


  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 


< prev index next >