235 size_t total_cards_occupied() const { return _all.cards_occupied(); }
236
237 size_t max_rs_mem_sz() const { return _max_rs_mem_sz; }
238 HeapRegion* max_rs_mem_sz_region() const { return _max_rs_mem_sz_region; }
239
240 size_t _max_code_root_mem_sz;
241 HeapRegion* _max_code_root_mem_sz_region;
242
243 size_t total_code_root_mem_sz() const { return _all.code_root_mem_size(); }
244 size_t total_code_root_elems() const { return _all.code_root_elems(); }
245
246 size_t max_code_root_mem_sz() const { return _max_code_root_mem_sz; }
247 HeapRegion* max_code_root_mem_sz_region() const { return _max_code_root_mem_sz_region; }
248
249 public:
250 HRRSStatsIter() : _all("All"), _young("Young"), _humongous("Humongous"),
251 _free("Free"), _old("Old"), _max_code_root_mem_sz_region(NULL), _max_rs_mem_sz_region(NULL),
252 _max_rs_mem_sz(0), _max_code_root_mem_sz(0)
253 {}
254
255 bool doHeapRegion(HeapRegion* r) {
256 HeapRegionRemSet* hrrs = r->rem_set();
257
258 // HeapRegionRemSet::mem_size() includes the
259 // size of the strong code roots
260 size_t rs_mem_sz = hrrs->mem_size();
261 if (rs_mem_sz > _max_rs_mem_sz) {
262 _max_rs_mem_sz = rs_mem_sz;
263 _max_rs_mem_sz_region = r;
264 }
265 size_t occupied_cards = hrrs->occupied();
266 size_t code_root_mem_sz = hrrs->strong_code_roots_mem_size();
267 if (code_root_mem_sz > max_code_root_mem_sz()) {
268 _max_code_root_mem_sz = code_root_mem_sz;
269 _max_code_root_mem_sz_region = r;
270 }
271 size_t code_root_elems = hrrs->strong_code_roots_list_length();
272
273 RegionTypeCounter* current = NULL;
274 if (r->is_free()) {
275 current = &_free;
|
235 size_t total_cards_occupied() const { return _all.cards_occupied(); }
236
237 size_t max_rs_mem_sz() const { return _max_rs_mem_sz; }
238 HeapRegion* max_rs_mem_sz_region() const { return _max_rs_mem_sz_region; }
239
240 size_t _max_code_root_mem_sz;
241 HeapRegion* _max_code_root_mem_sz_region;
242
243 size_t total_code_root_mem_sz() const { return _all.code_root_mem_size(); }
244 size_t total_code_root_elems() const { return _all.code_root_elems(); }
245
246 size_t max_code_root_mem_sz() const { return _max_code_root_mem_sz; }
247 HeapRegion* max_code_root_mem_sz_region() const { return _max_code_root_mem_sz_region; }
248
249 public:
250 HRRSStatsIter() : _all("All"), _young("Young"), _humongous("Humongous"),
251 _free("Free"), _old("Old"), _max_code_root_mem_sz_region(NULL), _max_rs_mem_sz_region(NULL),
252 _max_rs_mem_sz(0), _max_code_root_mem_sz(0)
253 {}
254
255 bool do_heap_region(HeapRegion* r) {
256 HeapRegionRemSet* hrrs = r->rem_set();
257
258 // HeapRegionRemSet::mem_size() includes the
259 // size of the strong code roots
260 size_t rs_mem_sz = hrrs->mem_size();
261 if (rs_mem_sz > _max_rs_mem_sz) {
262 _max_rs_mem_sz = rs_mem_sz;
263 _max_rs_mem_sz_region = r;
264 }
265 size_t occupied_cards = hrrs->occupied();
266 size_t code_root_mem_sz = hrrs->strong_code_roots_mem_size();
267 if (code_root_mem_sz > max_code_root_mem_sz()) {
268 _max_code_root_mem_sz = code_root_mem_sz;
269 _max_code_root_mem_sz_region = r;
270 }
271 size_t code_root_elems = hrrs->strong_code_roots_list_length();
272
273 RegionTypeCounter* current = NULL;
274 if (r->is_free()) {
275 current = &_free;
|