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("ps main", _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());
|
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());
|