comparison src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp @ 10290:05a17f270c7e

8014240: G1: Add remembered set size information to output of G1PrintRegionLivenessInfo Summary: Improve the output of G1PrintRegionLivenessInfo by adding a per-region remembered set size information column Reviewed-by: jwilhelm, johnc
author tschatzl
date Thu, 16 May 2013 13:02:33 +0200
parents d58c62b7447d
children 2958af1d8c5a
comparison
equal deleted inserted replaced
10289:bed55d125e37 10290:05a17f270c7e
704 704
705 size_t OtherRegionsTable::mem_size() const { 705 size_t OtherRegionsTable::mem_size() const {
706 // Cast away const in this case. 706 // Cast away const in this case.
707 MutexLockerEx x((Mutex*)&_m, Mutex::_no_safepoint_check_flag); 707 MutexLockerEx x((Mutex*)&_m, Mutex::_no_safepoint_check_flag);
708 size_t sum = 0; 708 size_t sum = 0;
709 PerRegionTable * cur = _first_all_fine_prts; 709 // all PRTs are of the same size so it is sufficient to query only one of them.
710 while (cur != NULL) { 710 if (_first_all_fine_prts != NULL) {
711 sum += cur->mem_size(); 711 assert(_last_all_fine_prts != NULL &&
712 cur = cur->next(); 712 _first_all_fine_prts->mem_size() == _last_all_fine_prts->mem_size(), "check that mem_size() is constant");
713 sum += _first_all_fine_prts->mem_size() * _n_fine_entries;
713 } 714 }
714 sum += (sizeof(PerRegionTable*) * _max_fine_entries); 715 sum += (sizeof(PerRegionTable*) * _max_fine_entries);
715 sum += (_coarse_map.size_in_words() * HeapWordSize); 716 sum += (_coarse_map.size_in_words() * HeapWordSize);
716 sum += (_sparse_table.mem_size()); 717 sum += (_sparse_table.mem_size());
717 sum += sizeof(*this) - sizeof(_sparse_table); // Avoid double counting above. 718 sum += sizeof(*this) - sizeof(_sparse_table); // Avoid double counting above.