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 };