2037 // miscellaneous bookkeeping.
2038 PreGCValues pre_gc_values;
2039 pre_compact(&pre_gc_values);
2040
2041 // Get the compaction manager reserved for the VM thread.
2042 ParCompactionManager* const vmthread_cm =
2043 ParCompactionManager::manager_array(gc_task_manager()->workers());
2044
2045 // Place after pre_compact() where the number of invocations is incremented.
2046 AdaptiveSizePolicyOutput(size_policy, heap->total_collections());
2047
2048 {
2049 ResourceMark rm;
2050 HandleMark hm;
2051
2052 // Set the number of GC threads to be used in this collection
2053 gc_task_manager()->set_active_gang();
2054 gc_task_manager()->task_idle_workers();
2055 heap->set_par_threads(gc_task_manager()->active_workers());
2056
2057 gclog_or_tty->date_stamp(PrintGC && PrintGCDateStamps);
2058 TraceCPUTime tcpu(PrintGCDetails, true, gclog_or_tty);
2059 GCTraceTime t1(GCCauseString("Full GC", gc_cause), PrintGC, !PrintGCDetails, NULL, _gc_tracer.gc_id());
2060 TraceCollectorStats tcs(counters());
2061 TraceMemoryManagerStats tms(true /* Full GC */,gc_cause);
2062
2063 if (TraceGen1Time) accumulated_time()->start();
2064
2065 // Let the size policy know we're starting
2066 size_policy->major_collection_begin();
2067
2068 CodeCache::gc_prologue();
2069 Threads::gc_prologue();
2070
2071 COMPILER2_PRESENT(DerivedPointerTable::clear());
2072
2073 ref_processor()->enable_discovery(true /*verify_disabled*/, true /*verify_no_refs*/);
2074 ref_processor()->setup_policy(maximum_heap_compaction);
2075
2076 bool marked_for_unloading = false;
2077
|
2037 // miscellaneous bookkeeping.
2038 PreGCValues pre_gc_values;
2039 pre_compact(&pre_gc_values);
2040
2041 // Get the compaction manager reserved for the VM thread.
2042 ParCompactionManager* const vmthread_cm =
2043 ParCompactionManager::manager_array(gc_task_manager()->workers());
2044
2045 // Place after pre_compact() where the number of invocations is incremented.
2046 AdaptiveSizePolicyOutput(size_policy, heap->total_collections());
2047
2048 {
2049 ResourceMark rm;
2050 HandleMark hm;
2051
2052 // Set the number of GC threads to be used in this collection
2053 gc_task_manager()->set_active_gang();
2054 gc_task_manager()->task_idle_workers();
2055 heap->set_par_threads(gc_task_manager()->active_workers());
2056
2057 TraceCPUTime tcpu(PrintGCDetails, true, gclog_or_tty);
2058 GCTraceTime t1(GCCauseString("Full GC", gc_cause), PrintGC, !PrintGCDetails, NULL, _gc_tracer.gc_id());
2059 TraceCollectorStats tcs(counters());
2060 TraceMemoryManagerStats tms(true /* Full GC */,gc_cause);
2061
2062 if (TraceGen1Time) accumulated_time()->start();
2063
2064 // Let the size policy know we're starting
2065 size_policy->major_collection_begin();
2066
2067 CodeCache::gc_prologue();
2068 Threads::gc_prologue();
2069
2070 COMPILER2_PRESENT(DerivedPointerTable::clear());
2071
2072 ref_processor()->enable_discovery(true /*verify_disabled*/, true /*verify_no_refs*/);
2073 ref_processor()->setup_policy(maximum_heap_compaction);
2074
2075 bool marked_for_unloading = false;
2076
|