< prev index next >

src/share/vm/gc/parallel/psParallelCompact.cpp

Print this page

        

@@ -1744,12 +1744,10 @@
   if (ZapUnusedHeapArea) {
     // Save information needed to minimize mangling
     heap->record_gen_tops_before_GC();
   }
 
-  heap->pre_full_gc_dump(&_gc_timer);
-
   // Make sure data structures are sane, make the heap parsable, and do other
   // miscellaneous bookkeeping.
   pre_compact();
 
   PreGCValues pre_gc_values(heap);

@@ -1766,10 +1764,13 @@
     gc_task_manager()->set_active_gang();
     gc_task_manager()->task_idle_workers();
 
     GCTraceCPUTime tcpu;
     GCTraceTime(Info, gc) tm("Pause Full", NULL, gc_cause, true);
+
+    heap->pre_full_gc_dump(&_gc_timer);
+
     TraceCollectorStats tcs(counters());
     TraceMemoryManagerStats tms(true /* Full GC */,gc_cause);
 
     if (TraceOldGenTime) accumulated_time()->start();
 

@@ -1900,10 +1901,12 @@
 
     // Track memory usage and detect low memory
     MemoryService::track_memory_usage();
     heap->update_counters();
     gc_task_manager()->release_idle_workers();
+
+    heap->post_full_gc_dump(&_gc_timer);
   }
 
 #ifdef ASSERT
   for (size_t i = 0; i < ParallelGCThreads + 1; ++i) {
     ParCompactionManager* const cm =

@@ -1938,12 +1941,10 @@
   log_debug(gc, task, time)("VM-Thread " JLONG_FORMAT " " JLONG_FORMAT " " JLONG_FORMAT,
                          marking_start.ticks(), compaction_start.ticks(),
                          collection_exit.ticks());
   gc_task_manager()->print_task_time_stamps();
 
-  heap->post_full_gc_dump(&_gc_timer);
-
 #ifdef TRACESPINNING
   ParallelTaskTerminator::print_termination_counts();
 #endif
 
   AdaptiveSizePolicyOutput::print(size_policy, heap->total_collections());
< prev index next >