Mercurial > hg > graal-jvmci-8
comparison src/share/vm/memory/defNewGeneration.hpp @ 263:12eea04c8b06
6672698: mangle_unused_area() should not remangle the entire heap at each collection.
Summary: Maintain a high water mark for the allocations in a space and mangle only up to that high water mark.
Reviewed-by: ysr, apetrusenko
author | jmasa |
---|---|
date | Wed, 09 Jul 2008 15:08:55 -0700 |
parents | ba764ed4b6f2 |
children | 850fdf70db2b |
comparison
equal
deleted
inserted
replaced
225:286bee59f34b | 263:12eea04c8b06 |
---|---|
277 | 277 |
278 // Prologue & Epilogue | 278 // Prologue & Epilogue |
279 virtual void gc_prologue(bool full); | 279 virtual void gc_prologue(bool full); |
280 virtual void gc_epilogue(bool full); | 280 virtual void gc_epilogue(bool full); |
281 | 281 |
282 // Save the tops for eden, from, and to | |
283 virtual void record_spaces_top(); | |
284 | |
282 // Doesn't require additional work during GC prologue and epilogue | 285 // Doesn't require additional work during GC prologue and epilogue |
283 virtual bool performs_in_place_marking() const { return false; } | 286 virtual bool performs_in_place_marking() const { return false; } |
284 | 287 |
285 // Accessing marks | 288 // Accessing marks |
286 void save_marks(); | 289 void save_marks(); |
297 | 300 |
298 #undef DefNew_SINCE_SAVE_MARKS_DECL | 301 #undef DefNew_SINCE_SAVE_MARKS_DECL |
299 | 302 |
300 // For non-youngest collection, the DefNewGeneration can contribute | 303 // For non-youngest collection, the DefNewGeneration can contribute |
301 // "to-space". | 304 // "to-space". |
302 void contribute_scratch(ScratchBlock*& list, Generation* requestor, | 305 virtual void contribute_scratch(ScratchBlock*& list, Generation* requestor, |
303 size_t max_alloc_words); | 306 size_t max_alloc_words); |
307 | |
308 // Reset for contribution of "to-space". | |
309 virtual void reset_scratch(); | |
304 | 310 |
305 // GC support | 311 // GC support |
306 virtual void compute_new_size(); | 312 virtual void compute_new_size(); |
307 virtual void collect(bool full, | 313 virtual void collect(bool full, |
308 bool clear_all_soft_refs, | 314 bool clear_all_soft_refs, |
329 void print_on(outputStream* st) const; | 335 void print_on(outputStream* st) const; |
330 | 336 |
331 void verify(bool allow_dirty); | 337 void verify(bool allow_dirty); |
332 | 338 |
333 protected: | 339 protected: |
334 void compute_space_boundaries(uintx minimum_eden_size); | 340 // If clear_space is true, clear the survivor spaces. Eden is |
341 // cleared if the minimum size of eden is 0. If mangle_space | |
342 // is true, also mangle the space in debug mode. | |
343 void compute_space_boundaries(uintx minimum_eden_size, | |
344 bool clear_space, | |
345 bool mangle_space); | |
335 // Scavenge support | 346 // Scavenge support |
336 void swap_spaces(); | 347 void swap_spaces(); |
337 }; | 348 }; |