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