mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-21 03:24:38 +02:00
6672698: mangle_unused_area() should not remangle the entire heap at each collection
Maintain a high water mark for the allocations in a space and mangle only up to that high water mark. Reviewed-by: ysr, apetrusenko
This commit is contained in:
parent
0d9452401c
commit
18dbebd143
43 changed files with 1299 additions and 206 deletions
|
@ -376,6 +376,9 @@ class Generation: public CHeapObj {
|
|||
// The default is to do nothing.
|
||||
virtual void gc_epilogue(bool full) {};
|
||||
|
||||
// Save the high water marks for the used space in a generation.
|
||||
virtual void record_spaces_top() {};
|
||||
|
||||
// Some generations may need to be "fixed-up" after some allocation
|
||||
// activity to make them parsable again. The default is to do nothing.
|
||||
virtual void ensure_parsability() {};
|
||||
|
@ -476,6 +479,10 @@ class Generation: public CHeapObj {
|
|||
virtual void contribute_scratch(ScratchBlock*& list, Generation* requestor,
|
||||
size_t max_alloc_words) {}
|
||||
|
||||
// Give each generation an opportunity to do clean up for any
|
||||
// contributed scratch.
|
||||
virtual void reset_scratch() {};
|
||||
|
||||
// When an older generation has been collected, and perhaps resized,
|
||||
// this method will be invoked on all younger generations (from older to
|
||||
// younger), allowing them to resize themselves as appropriate.
|
||||
|
@ -699,6 +706,8 @@ class OneContigSpaceCardGeneration: public CardGeneration {
|
|||
|
||||
virtual void gc_epilogue(bool full);
|
||||
|
||||
virtual void record_spaces_top();
|
||||
|
||||
virtual void verify(bool allow_dirty);
|
||||
virtual void print_on(outputStream* st) const;
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue