273 ParallelScavengeHeap* heap = ParallelScavengeHeap::heap();
274 GCCause::Cause gc_cause = heap->gc_cause();
275
276 // Check for potential problems.
277 if (!should_attempt_scavenge()) {
278 return false;
279 }
280
281 _gc_tracer.report_gc_start(heap->gc_cause(), _gc_timer.gc_start());
282
283 bool promotion_failure_occurred = false;
284
285 PSYoungGen* young_gen = heap->young_gen();
286 PSOldGen* old_gen = heap->old_gen();
287 PSAdaptiveSizePolicy* size_policy = heap->size_policy();
288
289 heap->increment_total_collections();
290
291 AdaptiveSizePolicyOutput(size_policy, heap->total_collections());
292
293 if ((gc_cause != GCCause::_java_lang_system_gc) ||
294 UseAdaptiveSizePolicyWithSystemGC) {
295 // Gather the feedback data for eden occupancy.
296 young_gen->eden_space()->accumulate_statistics();
297 }
298
299 if (ZapUnusedHeapArea) {
300 // Save information needed to minimize mangling
301 heap->record_gen_tops_before_GC();
302 }
303
304 heap->print_heap_before_gc();
305 heap->trace_heap_before_gc(&_gc_tracer);
306
307 assert(!NeverTenure || _tenuring_threshold == markOopDesc::max_age + 1, "Sanity");
308 assert(!AlwaysTenure || _tenuring_threshold == 0, "Sanity");
309
310 size_t prev_used = heap->used();
311
312 // Fill in TLABs
313 heap->accumulate_statistics_all_tlabs();
|
273 ParallelScavengeHeap* heap = ParallelScavengeHeap::heap();
274 GCCause::Cause gc_cause = heap->gc_cause();
275
276 // Check for potential problems.
277 if (!should_attempt_scavenge()) {
278 return false;
279 }
280
281 _gc_tracer.report_gc_start(heap->gc_cause(), _gc_timer.gc_start());
282
283 bool promotion_failure_occurred = false;
284
285 PSYoungGen* young_gen = heap->young_gen();
286 PSOldGen* old_gen = heap->old_gen();
287 PSAdaptiveSizePolicy* size_policy = heap->size_policy();
288
289 heap->increment_total_collections();
290
291 AdaptiveSizePolicyOutput(size_policy, heap->total_collections());
292
293 if (!GCCause::is_user_requested_gc(gc_cause) ||
294 UseAdaptiveSizePolicyWithSystemGC) {
295 // Gather the feedback data for eden occupancy.
296 young_gen->eden_space()->accumulate_statistics();
297 }
298
299 if (ZapUnusedHeapArea) {
300 // Save information needed to minimize mangling
301 heap->record_gen_tops_before_GC();
302 }
303
304 heap->print_heap_before_gc();
305 heap->trace_heap_before_gc(&_gc_tracer);
306
307 assert(!NeverTenure || _tenuring_threshold == markOopDesc::max_age + 1, "Sanity");
308 assert(!AlwaysTenure || _tenuring_threshold == 0, "Sanity");
309
310 size_t prev_used = heap->used();
311
312 // Fill in TLABs
313 heap->accumulate_statistics_all_tlabs();
|