108
109 _heap->phase_timings()->record_phase_start(_phase);
110 }
111
112 ShenandoahGCPhase::~ShenandoahGCPhase() {
113 _heap->phase_timings()->record_phase_end(_phase);
114 _current_phase = _parent_phase;
115 }
116
117 bool ShenandoahGCPhase::is_valid_phase(ShenandoahPhaseTimings::Phase phase) {
118 return phase >= 0 && phase < ShenandoahPhaseTimings::_num_phases;
119 }
120
121 bool ShenandoahGCPhase::is_root_work_phase() {
122 switch(current_phase()) {
123 case ShenandoahPhaseTimings::scan_roots:
124 case ShenandoahPhaseTimings::update_roots:
125 case ShenandoahPhaseTimings::init_evac:
126 case ShenandoahPhaseTimings::final_update_refs_roots:
127 case ShenandoahPhaseTimings::degen_gc_update_roots:
128 case ShenandoahPhaseTimings::full_gc_roots:
129 return true;
130 default:
131 return false;
132 }
133 }
134
135 ShenandoahAllocTrace::ShenandoahAllocTrace(size_t words_size, ShenandoahAllocRequest::Type alloc_type) {
136 if (ShenandoahAllocationTrace) {
137 _start = os::elapsedTime();
138 _size = words_size;
139 _alloc_type = alloc_type;
140 } else {
141 _start = 0;
142 _size = 0;
143 _alloc_type = ShenandoahAllocRequest::Type(0);
144 }
145 }
146
147 ShenandoahAllocTrace::~ShenandoahAllocTrace() {
|
108
109 _heap->phase_timings()->record_phase_start(_phase);
110 }
111
112 ShenandoahGCPhase::~ShenandoahGCPhase() {
113 _heap->phase_timings()->record_phase_end(_phase);
114 _current_phase = _parent_phase;
115 }
116
117 bool ShenandoahGCPhase::is_valid_phase(ShenandoahPhaseTimings::Phase phase) {
118 return phase >= 0 && phase < ShenandoahPhaseTimings::_num_phases;
119 }
120
121 bool ShenandoahGCPhase::is_root_work_phase() {
122 switch(current_phase()) {
123 case ShenandoahPhaseTimings::scan_roots:
124 case ShenandoahPhaseTimings::update_roots:
125 case ShenandoahPhaseTimings::init_evac:
126 case ShenandoahPhaseTimings::final_update_refs_roots:
127 case ShenandoahPhaseTimings::degen_gc_update_roots:
128 case ShenandoahPhaseTimings::init_traversal_gc_work:
129 case ShenandoahPhaseTimings::final_traversal_gc_work:
130 case ShenandoahPhaseTimings::final_traversal_update_roots:
131 case ShenandoahPhaseTimings::full_gc_roots:
132 return true;
133 default:
134 return false;
135 }
136 }
137
138 ShenandoahAllocTrace::ShenandoahAllocTrace(size_t words_size, ShenandoahAllocRequest::Type alloc_type) {
139 if (ShenandoahAllocationTrace) {
140 _start = os::elapsedTime();
141 _size = words_size;
142 _alloc_type = alloc_type;
143 } else {
144 _start = 0;
145 _size = 0;
146 _alloc_type = ShenandoahAllocRequest::Type(0);
147 }
148 }
149
150 ShenandoahAllocTrace::~ShenandoahAllocTrace() {
|