Mercurial > hg > graal-jvmci-8
comparison src/share/vm/gc_implementation/g1/heapRegionRemSet.hpp @ 20305:755930f931e3
8027959: Early reclamation of large objects in G1
Summary: Try to reclaim humongous objects at every young collection after doing a conservative estimate of its liveness.
Reviewed-by: brutisso, mgerdin
author | tschatzl |
---|---|
date | Wed, 23 Jul 2014 09:03:32 +0200 |
parents | 828056cf311f |
children | 1f1d373cd044 |
comparison
equal
deleted
inserted
replaced
20304:a22acf6d7598 | 20305:755930f931e3 |
---|---|
183 | 183 |
184 // Removes any entries shown by the given bitmaps to contain only dead | 184 // Removes any entries shown by the given bitmaps to contain only dead |
185 // objects. | 185 // objects. |
186 void scrub(CardTableModRefBS* ctbs, BitMap* region_bm, BitMap* card_bm); | 186 void scrub(CardTableModRefBS* ctbs, BitMap* region_bm, BitMap* card_bm); |
187 | 187 |
188 // Returns whether this remembered set (and all sub-sets) contain no entries. | |
189 bool is_empty() const; | |
190 | |
188 size_t occupied() const; | 191 size_t occupied() const; |
189 size_t occ_fine() const; | 192 size_t occ_fine() const; |
190 size_t occ_coarse() const; | 193 size_t occ_coarse() const; |
191 size_t occ_sparse() const; | 194 size_t occ_sparse() const; |
192 | 195 |
265 static uint num_par_rem_sets(); | 268 static uint num_par_rem_sets(); |
266 static void setup_remset_size(); | 269 static void setup_remset_size(); |
267 | 270 |
268 HeapRegion* hr() const { | 271 HeapRegion* hr() const { |
269 return _other_regions.hr(); | 272 return _other_regions.hr(); |
273 } | |
274 | |
275 bool is_empty() const { | |
276 return (strong_code_roots_list_length() == 0) && _other_regions.is_empty(); | |
270 } | 277 } |
271 | 278 |
272 size_t occupied() { | 279 size_t occupied() { |
273 MutexLockerEx x(&_m, Mutex::_no_safepoint_check_flag); | 280 MutexLockerEx x(&_m, Mutex::_no_safepoint_check_flag); |
274 return occupied_locked(); | 281 return occupied_locked(); |
373 // Applies blk->do_code_blob() to each of the entries in | 380 // Applies blk->do_code_blob() to each of the entries in |
374 // the strong code roots list | 381 // the strong code roots list |
375 void strong_code_roots_do(CodeBlobClosure* blk) const; | 382 void strong_code_roots_do(CodeBlobClosure* blk) const; |
376 | 383 |
377 // Returns the number of elements in the strong code roots list | 384 // Returns the number of elements in the strong code roots list |
378 size_t strong_code_roots_list_length() { | 385 size_t strong_code_roots_list_length() const { |
379 return _code_roots.length(); | 386 return _code_roots.length(); |
380 } | 387 } |
381 | 388 |
382 // Returns true if the strong code roots contains the given | 389 // Returns true if the strong code roots contains the given |
383 // nmethod. | 390 // nmethod. |