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