43 #include "oops/oop.inline.hpp" 44 #include "runtime/handles.inline.hpp" 45 #include "runtime/java.hpp" 46 #include "runtime/vmThread.hpp" 47 #include "services/memTracker.hpp" 48 #include "utilities/vmError.hpp" 49 50 PSYoungGen* ParallelScavengeHeap::_young_gen = NULL; 51 PSOldGen* ParallelScavengeHeap::_old_gen = NULL; 52 PSAdaptiveSizePolicy* ParallelScavengeHeap::_size_policy = NULL; 53 PSGCAdaptivePolicyCounters* ParallelScavengeHeap::_gc_policy_counters = NULL; 54 GCTaskManager* ParallelScavengeHeap::_gc_task_manager = NULL; 55 56 jint ParallelScavengeHeap::initialize() { 57 CollectedHeap::pre_initialize(); 58 59 const size_t heap_size = _collector_policy->max_heap_byte_size(); 60 61 ReservedSpace heap_rs = Universe::reserve_heap(heap_size, _collector_policy->heap_alignment()); 62 63 os::trace_page_sizes("Heap", _collector_policy->min_heap_byte_size(), 64 heap_size, generation_alignment(), 65 heap_rs.base(), 66 heap_rs.size()); 67 68 initialize_reserved_region((HeapWord*)heap_rs.base(), (HeapWord*)(heap_rs.base() + heap_rs.size())); 69 70 CardTableExtension* const barrier_set = new CardTableExtension(reserved_region()); 71 barrier_set->initialize(); 72 set_barrier_set(barrier_set); 73 74 // Make up the generations 75 // Calculate the maximum size that a generation can grow. This 76 // includes growth into the other generation. Note that the 77 // parameter _max_gen_size is kept as the maximum 78 // size of the generation as the boundaries currently stand. 79 // _max_gen_size is still used as that value. 80 double max_gc_pause_sec = ((double) MaxGCPauseMillis)/1000.0; 81 double max_gc_minor_pause_sec = ((double) MaxGCMinorPauseMillis)/1000.0; 82 83 _gens = new AdjoiningGenerations(heap_rs, _collector_policy, generation_alignment()); 84 | 43 #include "oops/oop.inline.hpp" 44 #include "runtime/handles.inline.hpp" 45 #include "runtime/java.hpp" 46 #include "runtime/vmThread.hpp" 47 #include "services/memTracker.hpp" 48 #include "utilities/vmError.hpp" 49 50 PSYoungGen* ParallelScavengeHeap::_young_gen = NULL; 51 PSOldGen* ParallelScavengeHeap::_old_gen = NULL; 52 PSAdaptiveSizePolicy* ParallelScavengeHeap::_size_policy = NULL; 53 PSGCAdaptivePolicyCounters* ParallelScavengeHeap::_gc_policy_counters = NULL; 54 GCTaskManager* ParallelScavengeHeap::_gc_task_manager = NULL; 55 56 jint ParallelScavengeHeap::initialize() { 57 CollectedHeap::pre_initialize(); 58 59 const size_t heap_size = _collector_policy->max_heap_byte_size(); 60 61 ReservedSpace heap_rs = Universe::reserve_heap(heap_size, _collector_policy->heap_alignment()); 62 63 os::trace_page_sizes("Heap", 64 _collector_policy->min_heap_byte_size(), 65 heap_size, 66 generation_alignment(), 67 heap_rs.base(), 68 heap_rs.size()); 69 70 initialize_reserved_region((HeapWord*)heap_rs.base(), (HeapWord*)(heap_rs.base() + heap_rs.size())); 71 72 CardTableExtension* const barrier_set = new CardTableExtension(reserved_region()); 73 barrier_set->initialize(); 74 set_barrier_set(barrier_set); 75 76 // Make up the generations 77 // Calculate the maximum size that a generation can grow. This 78 // includes growth into the other generation. Note that the 79 // parameter _max_gen_size is kept as the maximum 80 // size of the generation as the boundaries currently stand. 81 // _max_gen_size is still used as that value. 82 double max_gc_pause_sec = ((double) MaxGCPauseMillis)/1000.0; 83 double max_gc_minor_pause_sec = ((double) MaxGCMinorPauseMillis)/1000.0; 84 85 _gens = new AdjoiningGenerations(heap_rs, _collector_policy, generation_alignment()); 86 |