< prev index next >

src/hotspot/share/gc/z/zRelocationSetSelector.hpp

Print this page




  37   size_t _npages;
  38   size_t _total;
  39   size_t _live;
  40   size_t _garbage;
  41   size_t _empty;
  42   size_t _compacting_from;
  43   size_t _compacting_to;
  44 
  45 public:
  46   ZRelocationSetSelectorGroupStats();
  47 
  48   size_t npages() const;
  49   size_t total() const;
  50   size_t live() const;
  51   size_t garbage() const;
  52   size_t empty() const;
  53   size_t compacting_from() const;
  54   size_t compacting_to() const;
  55 };
  56 














  57 class ZRelocationSetSelectorGroup {
  58 private:
  59   const char* const                _name;
  60   const size_t                     _page_size;
  61   const size_t                     _object_size_limit;
  62   const size_t                     _fragmentation_limit;
  63 
  64   ZArray<ZPage*>                   _registered_pages;
  65   ZPage**                          _sorted_pages;
  66   size_t                           _nselected;
  67   ZRelocationSetSelectorGroupStats _stats;
  68 
  69   void semi_sort();
  70 
  71 public:
  72   ZRelocationSetSelectorGroup(const char* name,
  73                               size_t page_size,
  74                               size_t object_size_limit);
  75   ~ZRelocationSetSelectorGroup();
  76 


  80 
  81   ZPage* const* selected() const;
  82   size_t nselected() const;
  83 
  84   const ZRelocationSetSelectorGroupStats& stats() const;
  85 };
  86 
  87 class ZRelocationSetSelector : public StackObj {
  88 private:
  89   ZRelocationSetSelectorGroup _small;
  90   ZRelocationSetSelectorGroup _medium;
  91   ZRelocationSetSelectorGroup _large;
  92 
  93 public:
  94   ZRelocationSetSelector();
  95 
  96   void register_live_page(ZPage* page);
  97   void register_garbage_page(ZPage* page);
  98   void select(ZRelocationSet* relocation_set);
  99 
 100   const ZRelocationSetSelectorGroupStats& stats_small() const;
 101   const ZRelocationSetSelectorGroupStats& stats_medium() const;
 102   const ZRelocationSetSelectorGroupStats& stats_large() const;
 103 };
 104 
 105 #endif // SHARE_GC_Z_ZRELOCATIONSETSELECTOR_HPP


  37   size_t _npages;
  38   size_t _total;
  39   size_t _live;
  40   size_t _garbage;
  41   size_t _empty;
  42   size_t _compacting_from;
  43   size_t _compacting_to;
  44 
  45 public:
  46   ZRelocationSetSelectorGroupStats();
  47 
  48   size_t npages() const;
  49   size_t total() const;
  50   size_t live() const;
  51   size_t garbage() const;
  52   size_t empty() const;
  53   size_t compacting_from() const;
  54   size_t compacting_to() const;
  55 };
  56 
  57 class ZRelocationSetSelectorStats {
  58   friend class ZRelocationSetSelector;
  59 
  60 private:
  61   ZRelocationSetSelectorGroupStats _small;
  62   ZRelocationSetSelectorGroupStats _medium;
  63   ZRelocationSetSelectorGroupStats _large;
  64 
  65 public:
  66   const ZRelocationSetSelectorGroupStats& small() const;
  67   const ZRelocationSetSelectorGroupStats& medium() const;
  68   const ZRelocationSetSelectorGroupStats& large() const;
  69 };
  70 
  71 class ZRelocationSetSelectorGroup {
  72 private:
  73   const char* const                _name;
  74   const size_t                     _page_size;
  75   const size_t                     _object_size_limit;
  76   const size_t                     _fragmentation_limit;
  77 
  78   ZArray<ZPage*>                   _registered_pages;
  79   ZPage**                          _sorted_pages;
  80   size_t                           _nselected;
  81   ZRelocationSetSelectorGroupStats _stats;
  82 
  83   void semi_sort();
  84 
  85 public:
  86   ZRelocationSetSelectorGroup(const char* name,
  87                               size_t page_size,
  88                               size_t object_size_limit);
  89   ~ZRelocationSetSelectorGroup();
  90 


  94 
  95   ZPage* const* selected() const;
  96   size_t nselected() const;
  97 
  98   const ZRelocationSetSelectorGroupStats& stats() const;
  99 };
 100 
 101 class ZRelocationSetSelector : public StackObj {
 102 private:
 103   ZRelocationSetSelectorGroup _small;
 104   ZRelocationSetSelectorGroup _medium;
 105   ZRelocationSetSelectorGroup _large;
 106 
 107 public:
 108   ZRelocationSetSelector();
 109 
 110   void register_live_page(ZPage* page);
 111   void register_garbage_page(ZPage* page);
 112   void select(ZRelocationSet* relocation_set);
 113 
 114   ZRelocationSetSelectorStats stats() const;


 115 };
 116 
 117 #endif // SHARE_GC_Z_ZRELOCATIONSETSELECTOR_HPP
< prev index next >