equal
deleted
inserted
replaced
296 // Set aside an initial future to_space. |
296 // Set aside an initial future to_space. |
297 _g1 = G1CollectedHeap::heap(); |
297 _g1 = G1CollectedHeap::heap(); |
298 size_t regions = Universe::heap()->capacity() / HeapRegion::GrainBytes; |
298 size_t regions = Universe::heap()->capacity() / HeapRegion::GrainBytes; |
299 |
299 |
300 assert(Heap_lock->owned_by_self(), "Locking discipline."); |
300 assert(Heap_lock->owned_by_self(), "Locking discipline."); |
301 |
|
302 if (G1SteadyStateUsed < 50) { |
|
303 vm_exit_during_initialization("G1SteadyStateUsed must be at least 50%."); |
|
304 } |
|
305 |
301 |
306 initialize_gc_policy_counters(); |
302 initialize_gc_policy_counters(); |
307 |
303 |
308 if (G1Gen) { |
304 if (G1Gen) { |
309 _in_young_gc_mode = true; |
305 _in_young_gc_mode = true; |
1423 last_pause_included_initial_mark = _should_initiate_conc_mark; |
1419 last_pause_included_initial_mark = _should_initiate_conc_mark; |
1424 if (last_pause_included_initial_mark) |
1420 if (last_pause_included_initial_mark) |
1425 record_concurrent_mark_init_end_pre(0.0); |
1421 record_concurrent_mark_init_end_pre(0.0); |
1426 |
1422 |
1427 size_t min_used_targ = |
1423 size_t min_used_targ = |
1428 (_g1->capacity() / 100) * (G1SteadyStateUsed - G1SteadyStateUsedDelta); |
1424 (_g1->capacity() / 100) * InitiatingHeapOccupancyPercent; |
1429 |
1425 |
1430 if (cur_used_bytes > min_used_targ) { |
1426 if (cur_used_bytes > min_used_targ) { |
1431 if (cur_used_bytes <= _prev_collection_pause_used_at_end_bytes) { |
1427 if (cur_used_bytes <= _prev_collection_pause_used_at_end_bytes) { |
1432 } else if (!_g1->mark_in_progress() && !_last_full_young_gc) { |
1428 } else if (!_g1->mark_in_progress() && !_last_full_young_gc) { |
1433 _should_initiate_conc_mark = true; |
1429 _should_initiate_conc_mark = true; |
2616 |
2612 |
2617 bool |
2613 bool |
2618 G1CollectorPolicy_BestRegionsFirst::should_do_collection_pause(size_t |
2614 G1CollectorPolicy_BestRegionsFirst::should_do_collection_pause(size_t |
2619 word_size) { |
2615 word_size) { |
2620 assert(_g1->regions_accounted_for(), "Region leakage!"); |
2616 assert(_g1->regions_accounted_for(), "Region leakage!"); |
2621 // Initiate a pause when we reach the steady-state "used" target. |
|
2622 size_t used_hard = (_g1->capacity() / 100) * G1SteadyStateUsed; |
|
2623 size_t used_soft = |
|
2624 MAX2((_g1->capacity() / 100) * (G1SteadyStateUsed - G1SteadyStateUsedDelta), |
|
2625 used_hard/2); |
|
2626 size_t used = _g1->used(); |
|
2627 |
|
2628 double max_pause_time_ms = _mmu_tracker->max_gc_time() * 1000.0; |
2617 double max_pause_time_ms = _mmu_tracker->max_gc_time() * 1000.0; |
2629 |
2618 |
2630 size_t young_list_length = _g1->young_list_length(); |
2619 size_t young_list_length = _g1->young_list_length(); |
2631 size_t young_list_max_length = _young_list_target_length; |
2620 size_t young_list_max_length = _young_list_target_length; |
2632 if (G1FixedEdenSize) { |
2621 if (G1FixedEdenSize) { |