< prev index next >
src/hotspot/share/gc/z/zRelocationSetSelector.hpp
Print this page
@@ -28,53 +28,78 @@
#include "memory/allocation.hpp"
class ZPage;
class ZRelocationSet;
+class ZRelocationSetSelectorGroupStats {
+ friend class ZRelocationSetSelectorGroup;
+
+private:
+ size_t _npages;
+ size_t _total;
+ size_t _live;
+ size_t _garbage;
+ size_t _empty;
+ size_t _compacting_from;
+ size_t _compacting_to;
+
+public:
+ ZRelocationSetSelectorGroupStats();
+
+ size_t npages() const;
+ size_t total() const;
+ size_t live() const;
+ size_t garbage() const;
+ size_t empty() const;
+ size_t compacting_from() const;
+ size_t compacting_to() const;
+};
+
class ZRelocationSetSelectorGroup {
private:
- const char* const _name;
- const size_t _page_size;
- const size_t _object_size_limit;
- const size_t _fragmentation_limit;
-
- ZArray<ZPage*> _registered_pages;
- ZPage** _sorted_pages;
- size_t _nselected;
- size_t _relocating;
+ const char* const _name;
+ const size_t _page_size;
+ const size_t _object_size_limit;
+ const size_t _fragmentation_limit;
+
+ ZArray<ZPage*> _registered_pages;
+ ZPage** _sorted_pages;
+ size_t _nselected;
+ ZRelocationSetSelectorGroupStats _stats;
void semi_sort();
public:
ZRelocationSetSelectorGroup(const char* name,
size_t page_size,
size_t object_size_limit);
~ZRelocationSetSelectorGroup();
- void register_live_page(ZPage* page, size_t garbage);
+ void register_live_page(ZPage* page);
+ void register_garbage_page(ZPage* page);
void select();
ZPage* const* selected() const;
size_t nselected() const;
- size_t relocating() const;
+
+ const ZRelocationSetSelectorGroupStats& stats() const;
};
class ZRelocationSetSelector : public StackObj {
private:
ZRelocationSetSelectorGroup _small;
ZRelocationSetSelectorGroup _medium;
- size_t _live;
- size_t _garbage;
+ ZRelocationSetSelectorGroup _large;
public:
ZRelocationSetSelector();
void register_live_page(ZPage* page);
void register_garbage_page(ZPage* page);
void select(ZRelocationSet* relocation_set);
- size_t live() const;
- size_t garbage() const;
- size_t relocating() const;
+ const ZRelocationSetSelectorGroupStats& stats_small() const;
+ const ZRelocationSetSelectorGroupStats& stats_medium() const;
+ const ZRelocationSetSelectorGroupStats& stats_large() const;
};
#endif // SHARE_GC_Z_ZRELOCATIONSETSELECTOR_HPP
< prev index next >