hotspot/src/share/vm/gc/parallel/psParallelCompact.cpp
changeset 35939 05df7e64ecfc
parent 35901 f5028c67e7cb
child 36581 8d65a7db1582
equal deleted inserted replaced
35938:a734965f7634 35939:05df7e64ecfc
  1744   if (ZapUnusedHeapArea) {
  1744   if (ZapUnusedHeapArea) {
  1745     // Save information needed to minimize mangling
  1745     // Save information needed to minimize mangling
  1746     heap->record_gen_tops_before_GC();
  1746     heap->record_gen_tops_before_GC();
  1747   }
  1747   }
  1748 
  1748 
  1749   heap->pre_full_gc_dump(&_gc_timer);
       
  1750 
       
  1751   // Make sure data structures are sane, make the heap parsable, and do other
  1749   // Make sure data structures are sane, make the heap parsable, and do other
  1752   // miscellaneous bookkeeping.
  1750   // miscellaneous bookkeeping.
  1753   pre_compact();
  1751   pre_compact();
  1754 
  1752 
  1755   PreGCValues pre_gc_values(heap);
  1753   PreGCValues pre_gc_values(heap);
  1766     gc_task_manager()->set_active_gang();
  1764     gc_task_manager()->set_active_gang();
  1767     gc_task_manager()->task_idle_workers();
  1765     gc_task_manager()->task_idle_workers();
  1768 
  1766 
  1769     GCTraceCPUTime tcpu;
  1767     GCTraceCPUTime tcpu;
  1770     GCTraceTime(Info, gc) tm("Pause Full", NULL, gc_cause, true);
  1768     GCTraceTime(Info, gc) tm("Pause Full", NULL, gc_cause, true);
       
  1769 
       
  1770     heap->pre_full_gc_dump(&_gc_timer);
       
  1771 
  1771     TraceCollectorStats tcs(counters());
  1772     TraceCollectorStats tcs(counters());
  1772     TraceMemoryManagerStats tms(true /* Full GC */,gc_cause);
  1773     TraceMemoryManagerStats tms(true /* Full GC */,gc_cause);
  1773 
  1774 
  1774     if (TraceOldGenTime) accumulated_time()->start();
  1775     if (TraceOldGenTime) accumulated_time()->start();
  1775 
  1776 
  1900 
  1901 
  1901     // Track memory usage and detect low memory
  1902     // Track memory usage and detect low memory
  1902     MemoryService::track_memory_usage();
  1903     MemoryService::track_memory_usage();
  1903     heap->update_counters();
  1904     heap->update_counters();
  1904     gc_task_manager()->release_idle_workers();
  1905     gc_task_manager()->release_idle_workers();
       
  1906 
       
  1907     heap->post_full_gc_dump(&_gc_timer);
  1905   }
  1908   }
  1906 
  1909 
  1907 #ifdef ASSERT
  1910 #ifdef ASSERT
  1908   for (size_t i = 0; i < ParallelGCThreads + 1; ++i) {
  1911   for (size_t i = 0; i < ParallelGCThreads + 1; ++i) {
  1909     ParCompactionManager* const cm =
  1912     ParCompactionManager* const cm =
  1937 
  1940 
  1938   log_debug(gc, task, time)("VM-Thread " JLONG_FORMAT " " JLONG_FORMAT " " JLONG_FORMAT,
  1941   log_debug(gc, task, time)("VM-Thread " JLONG_FORMAT " " JLONG_FORMAT " " JLONG_FORMAT,
  1939                          marking_start.ticks(), compaction_start.ticks(),
  1942                          marking_start.ticks(), compaction_start.ticks(),
  1940                          collection_exit.ticks());
  1943                          collection_exit.ticks());
  1941   gc_task_manager()->print_task_time_stamps();
  1944   gc_task_manager()->print_task_time_stamps();
  1942 
       
  1943   heap->post_full_gc_dump(&_gc_timer);
       
  1944 
  1945 
  1945 #ifdef TRACESPINNING
  1946 #ifdef TRACESPINNING
  1946   ParallelTaskTerminator::print_termination_counts();
  1947   ParallelTaskTerminator::print_termination_counts();
  1947 #endif
  1948 #endif
  1948 
  1949