68 // space reserved for the heap.
69 AdjoiningGenerations* _gens;
70 unsigned int _death_march_count;
71
72 // The task manager
73 static GCTaskManager* _gc_task_manager;
74
75 GCMemoryManager* _young_manager;
76 GCMemoryManager* _old_manager;
77
78 MemoryPool* _eden_pool;
79 MemoryPool* _survivor_pool;
80 MemoryPool* _old_pool;
81
82 virtual void initialize_serviceability();
83
84 void trace_heap(GCWhen::Type when, const GCTracer* tracer);
85
86 protected:
87 static inline size_t total_invocations();
88 HeapWord* allocate_new_tlab(size_t size);
89
90 inline bool should_alloc_in_eden(size_t size) const;
91 inline void death_march_check(HeapWord* const result, size_t size);
92 HeapWord* mem_allocate_old_gen(size_t size);
93
94 public:
95 ParallelScavengeHeap(GenerationSizer* policy) :
96 CollectedHeap(), _collector_policy(policy), _death_march_count(0) { }
97
98 // For use by VM operations
99 enum CollectionType {
100 Scavenge,
101 MarkSweep
102 };
103
104 virtual Name kind() const {
105 return CollectedHeap::Parallel;
106 }
107
108 virtual const char* name() const {
|
68 // space reserved for the heap.
69 AdjoiningGenerations* _gens;
70 unsigned int _death_march_count;
71
72 // The task manager
73 static GCTaskManager* _gc_task_manager;
74
75 GCMemoryManager* _young_manager;
76 GCMemoryManager* _old_manager;
77
78 MemoryPool* _eden_pool;
79 MemoryPool* _survivor_pool;
80 MemoryPool* _old_pool;
81
82 virtual void initialize_serviceability();
83
84 void trace_heap(GCWhen::Type when, const GCTracer* tracer);
85
86 protected:
87 static inline size_t total_invocations();
88 HeapWord* allocate_new_tlab(size_t minimal_size, size_t size, size_t* actual_size);
89
90 inline bool should_alloc_in_eden(size_t size) const;
91 inline void death_march_check(HeapWord* const result, size_t size);
92 HeapWord* mem_allocate_old_gen(size_t size);
93
94 public:
95 ParallelScavengeHeap(GenerationSizer* policy) :
96 CollectedHeap(), _collector_policy(policy), _death_march_count(0) { }
97
98 // For use by VM operations
99 enum CollectionType {
100 Scavenge,
101 MarkSweep
102 };
103
104 virtual Name kind() const {
105 return CollectedHeap::Parallel;
106 }
107
108 virtual const char* name() const {
|