< prev index next >
src/share/vm/gc/shared/collectorPolicy.cpp
Print this page
rev 13243 : 8179268: Factor out AdaptiveSizePolicy from top-level interfaces CollectorPolicy and CollectedHeap
Reviewed-by: pliden, mgerdin
*** 49,59 ****
_space_alignment(0),
_heap_alignment(0),
_initial_heap_byte_size(InitialHeapSize),
_max_heap_byte_size(MaxHeapSize),
_min_heap_byte_size(Arguments::min_heap_size()),
- _size_policy(NULL),
_should_clear_all_soft_refs(false),
_all_soft_refs_clear(false)
{}
#ifdef ASSERT
--- 49,58 ----
*** 155,170 ****
CardTableRS* CollectorPolicy::create_rem_set(MemRegion whole_heap) {
return new CardTableRS(whole_heap);
}
void CollectorPolicy::cleared_all_soft_refs() {
- // If near gc overhear limit, continue to clear SoftRefs. SoftRefs may
- // have been cleared in the last collection but if the gc overhear
- // limit continues to be near, SoftRefs should still be cleared.
- if (size_policy() != NULL) {
- _should_clear_all_soft_refs = size_policy()->gc_overhead_limit_near();
- }
_all_soft_refs_clear = true;
}
size_t CollectorPolicy::compute_heap_alignment() {
// The card marking array and the offset arrays for old generations are
--- 154,163 ----
*** 193,203 ****
_min_old_size(0),
_initial_old_size(0),
_max_old_size(0),
_gen_alignment(0),
_young_gen_spec(NULL),
! _old_gen_spec(NULL)
{}
size_t GenCollectorPolicy::scale_by_NewRatio_aligned(size_t base_size) {
return align_down_bounded(base_size / (NewRatio + 1), _gen_alignment);
}
--- 186,197 ----
_min_old_size(0),
_initial_old_size(0),
_max_old_size(0),
_gen_alignment(0),
_young_gen_spec(NULL),
! _old_gen_spec(NULL),
! _size_policy(NULL)
{}
size_t GenCollectorPolicy::scale_by_NewRatio_aligned(size_t base_size) {
return align_down_bounded(base_size / (NewRatio + 1), _gen_alignment);
}
*** 218,227 ****
--- 212,232 ----
init_survivor_size,
max_gc_pause_sec,
GCTimeRatio);
}
+ void GenCollectorPolicy::cleared_all_soft_refs() {
+ // If near gc overhear limit, continue to clear SoftRefs. SoftRefs may
+ // have been cleared in the last collection but if the gc overhear
+ // limit continues to be near, SoftRefs should still be cleared.
+ if (size_policy() != NULL) {
+ _should_clear_all_soft_refs = size_policy()->gc_overhead_limit_near();
+ }
+
+ CollectorPolicy::cleared_all_soft_refs();
+ }
+
size_t GenCollectorPolicy::young_gen_size_lower_bound() {
// The young generation must be aligned and have room for eden + two survivors
return align_up(3 * _space_alignment, _gen_alignment);
}
< prev index next >