< prev index next >

src/hotspot/share/gc/parallel/parallelScavengeHeap.cpp

Print this page

        

*** 23,32 **** --- 23,33 ---- */ #include "precompiled.hpp" #include "code/codeCache.hpp" #include "gc/parallel/adjoiningGenerations.hpp" + #include "gc/parallel/adjoiningGenerationsForHeteroHeap.hpp" #include "gc/parallel/adjoiningVirtualSpaces.hpp" #include "gc/parallel/gcTaskManager.hpp" #include "gc/parallel/generationSizer.hpp" #include "gc/parallel/objectStartArray.inline.hpp" #include "gc/parallel/parallelScavengeHeap.inline.hpp"
*** 56,66 **** PSAdaptiveSizePolicy* ParallelScavengeHeap::_size_policy = NULL; PSGCAdaptivePolicyCounters* ParallelScavengeHeap::_gc_policy_counters = NULL; GCTaskManager* ParallelScavengeHeap::_gc_task_manager = NULL; jint ParallelScavengeHeap::initialize() { ! const size_t heap_size = _collector_policy->max_heap_byte_size(); ReservedSpace heap_rs = Universe::reserve_heap(heap_size, _collector_policy->heap_alignment()); os::trace_page_sizes("Heap", _collector_policy->min_heap_byte_size(), --- 57,71 ---- PSAdaptiveSizePolicy* ParallelScavengeHeap::_size_policy = NULL; PSGCAdaptivePolicyCounters* ParallelScavengeHeap::_gc_policy_counters = NULL; GCTaskManager* ParallelScavengeHeap::_gc_task_manager = NULL; jint ParallelScavengeHeap::initialize() { ! size_t heap_size = _collector_policy->max_heap_byte_size(); ! ! if (AllocateOldGenAt != NULL && UseAdaptiveGCBoundary) { ! heap_size = AdjoiningGenerationsForHeteroHeap::required_reserved_memory(_collector_policy); ! } ReservedSpace heap_rs = Universe::reserve_heap(heap_size, _collector_policy->heap_alignment()); os::trace_page_sizes("Heap", _collector_policy->min_heap_byte_size(),
*** 84,94 **** --- 89,105 ---- // size of the generation as the boundaries currently stand. // _max_gen_size is still used as that value. double max_gc_pause_sec = ((double) MaxGCPauseMillis)/1000.0; double max_gc_minor_pause_sec = ((double) MaxGCMinorPauseMillis)/1000.0; + if (AllocateOldGenAt != NULL && UseAdaptiveGCBoundary) { + _gens = new AdjoiningGenerationsForHeteroHeap(heap_rs, _collector_policy->max_heap_byte_size() /* total_size_limit */, + _collector_policy, generation_alignment()); + } + else { _gens = new AdjoiningGenerations(heap_rs, _collector_policy, generation_alignment()); + } _old_gen = _gens->old_gen(); _young_gen = _gens->young_gen(); const size_t eden_capacity = _young_gen->eden_space()->capacity_in_bytes();
*** 102,112 **** max_gc_pause_sec, max_gc_minor_pause_sec, GCTimeRatio ); ! assert(!UseAdaptiveGCBoundary || (old_gen()->virtual_space()->high_boundary() == young_gen()->virtual_space()->low_boundary()), "Boundaries must meet"); // initialize the policy counters - 2 collectors, 2 generations _gc_policy_counters = --- 113,123 ---- max_gc_pause_sec, max_gc_minor_pause_sec, GCTimeRatio ); ! assert(AllocateOldGenAt != NULL || !UseAdaptiveGCBoundary || (old_gen()->virtual_space()->high_boundary() == young_gen()->virtual_space()->low_boundary()), "Boundaries must meet"); // initialize the policy counters - 2 collectors, 2 generations _gc_policy_counters =
< prev index next >