< prev index next >

src/hotspot/share/gc/g1/g1ConcurrentMark.cpp

Print this page

        

*** 22,32 **** * */ #include "precompiled.hpp" #include "classfile/metadataOnStackMark.hpp" - #include "classfile/symbolTable.hpp" #include "code/codeCache.hpp" #include "gc/g1/g1BarrierSet.hpp" #include "gc/g1/g1CollectedHeap.inline.hpp" #include "gc/g1/g1CollectorState.hpp" #include "gc/g1/g1ConcurrentMark.inline.hpp" --- 22,31 ----
*** 1577,1588 **** HandleMark hm; // Is alive closure. G1CMIsAliveClosure g1_is_alive(_g1h); ! // Inner scope to exclude the cleaning of the string and symbol ! // tables from the displayed time. { GCTraceTime(Debug, gc, phases) debug("Reference Processing", _gc_timer_cm); ReferenceProcessor* rp = _g1h->ref_processor_cm(); --- 1576,1587 ---- HandleMark hm; // Is alive closure. G1CMIsAliveClosure g1_is_alive(_g1h); ! // Inner scope to exclude the cleaning of the string table ! // from the displayed time. { GCTraceTime(Debug, gc, phases) debug("Reference Processing", _gc_timer_cm); ReferenceProcessor* rp = _g1h->ref_processor_cm();
*** 1672,1691 **** { GCTraceTime(Debug, gc, phases) debug("Weak Processing", _gc_timer_cm); WeakProcessor::weak_oops_do(&g1_is_alive, &do_nothing_cl); } ! // Unload Klasses, String, Symbols, Code Cache, etc. if (ClassUnloadingWithConcurrentMark) { GCTraceTime(Debug, gc, phases) debug("Class Unloading", _gc_timer_cm); bool purged_classes = SystemDictionary::do_unloading(_gc_timer_cm, false /* Defer cleaning */); _g1h->complete_cleaning(&g1_is_alive, purged_classes); } else { GCTraceTime(Debug, gc, phases) debug("Cleanup", _gc_timer_cm); ! // No need to clean string table and symbol table as they are treated as strong roots when // class unloading is disabled. ! _g1h->partial_cleaning(&g1_is_alive, false, false, G1StringDedup::is_enabled()); } } class G1PrecleanYieldClosure : public YieldClosure { G1ConcurrentMark* _cm; --- 1671,1690 ---- { GCTraceTime(Debug, gc, phases) debug("Weak Processing", _gc_timer_cm); WeakProcessor::weak_oops_do(&g1_is_alive, &do_nothing_cl); } ! // Unload Klasses, String, Code Cache, etc. if (ClassUnloadingWithConcurrentMark) { GCTraceTime(Debug, gc, phases) debug("Class Unloading", _gc_timer_cm); bool purged_classes = SystemDictionary::do_unloading(_gc_timer_cm, false /* Defer cleaning */); _g1h->complete_cleaning(&g1_is_alive, purged_classes); } else { GCTraceTime(Debug, gc, phases) debug("Cleanup", _gc_timer_cm); ! // No need to clean string table as it is treated as strong roots when // class unloading is disabled. ! _g1h->partial_cleaning(&g1_is_alive, false, G1StringDedup::is_enabled()); } } class G1PrecleanYieldClosure : public YieldClosure { G1ConcurrentMark* _cm;
< prev index next >