< 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 >