127 } else {
128 rem_set()->clear();
129 }
130 }
131
132 zero_marked_bytes();
133
134 init_top_at_mark_start();
135 if (clear_space) clear(SpaceDecorator::Mangle);
136 }
137
138 void HeapRegion::clear_cardtable() {
139 G1CardTable* ct = G1CollectedHeap::heap()->card_table();
140 ct->clear(MemRegion(bottom(), end()));
141 }
142
143 void HeapRegion::calc_gc_efficiency() {
144 // GC efficiency is the ratio of how much space would be
145 // reclaimed over how long we predict it would take to reclaim it.
146 G1CollectedHeap* g1h = G1CollectedHeap::heap();
147 G1Policy* g1p = g1h->g1_policy();
148
149 // Retrieve a prediction of the elapsed time for this region for
150 // a mixed gc because the region will only be evacuated during a
151 // mixed gc.
152 double region_elapsed_time_ms =
153 g1p->predict_region_elapsed_time_ms(this, false /* for_young_gc */);
154 _gc_efficiency = (double) reclaimable_bytes() / region_elapsed_time_ms;
155 }
156
157 void HeapRegion::set_free() {
158 report_region_type_change(G1HeapRegionTraceType::Free);
159 _type.set_free();
160 }
161
162 void HeapRegion::set_eden() {
163 report_region_type_change(G1HeapRegionTraceType::Eden);
164 _type.set_eden();
165 }
166
167 void HeapRegion::set_eden_pre_gc() {
|
127 } else {
128 rem_set()->clear();
129 }
130 }
131
132 zero_marked_bytes();
133
134 init_top_at_mark_start();
135 if (clear_space) clear(SpaceDecorator::Mangle);
136 }
137
138 void HeapRegion::clear_cardtable() {
139 G1CardTable* ct = G1CollectedHeap::heap()->card_table();
140 ct->clear(MemRegion(bottom(), end()));
141 }
142
143 void HeapRegion::calc_gc_efficiency() {
144 // GC efficiency is the ratio of how much space would be
145 // reclaimed over how long we predict it would take to reclaim it.
146 G1CollectedHeap* g1h = G1CollectedHeap::heap();
147 G1Policy* g1p = g1h->policy();
148
149 // Retrieve a prediction of the elapsed time for this region for
150 // a mixed gc because the region will only be evacuated during a
151 // mixed gc.
152 double region_elapsed_time_ms =
153 g1p->predict_region_elapsed_time_ms(this, false /* for_young_gc */);
154 _gc_efficiency = (double) reclaimable_bytes() / region_elapsed_time_ms;
155 }
156
157 void HeapRegion::set_free() {
158 report_region_type_change(G1HeapRegionTraceType::Free);
159 _type.set_free();
160 }
161
162 void HeapRegion::set_eden() {
163 report_region_type_change(G1HeapRegionTraceType::Eden);
164 _type.set_eden();
165 }
166
167 void HeapRegion::set_eden_pre_gc() {
|