< prev index next >

src/share/vm/gc/g1/g1MarkSweep.cpp

Print this page
rev 12504 : 8171238: Unify cleanup code used in G1 Remark and Full GC marking
Reviewed-by:

*** 168,193 **** GCTraceTime(Debug, gc, phases) trace("Class Unloading", gc_timer()); // Unload classes and purge the SystemDictionary. bool purged_class = SystemDictionary::do_unloading(&GenMarkSweep::is_alive); ! // Unload nmethods. ! CodeCache::do_unloading(&GenMarkSweep::is_alive, purged_class); ! ! // Prune dead klasses from subklass/sibling/implementor lists. ! Klass::clean_weak_klass_links(&GenMarkSweep::is_alive); ! } ! ! { ! GCTraceTime(Debug, gc, phases) trace("Scrub String and Symbol Tables", gc_timer()); ! // Delete entries for dead interned string and clean up unreferenced symbols in symbol table. ! g1h->unlink_string_and_symbol_table(&GenMarkSweep::is_alive); ! } ! ! if (G1StringDedup::is_enabled()) { ! GCTraceTime(Debug, gc, phases) trace("String Deduplication Unlink", gc_timer()); ! G1StringDedup::unlink(&GenMarkSweep::is_alive); } if (VerifyDuringGC) { HandleMark hm; // handle scope #if defined(COMPILER2) || INCLUDE_JVMCI --- 168,181 ---- GCTraceTime(Debug, gc, phases) trace("Class Unloading", gc_timer()); // Unload classes and purge the SystemDictionary. bool purged_class = SystemDictionary::do_unloading(&GenMarkSweep::is_alive); ! g1h->full_cleaning(&GenMarkSweep::is_alive, purged_class); ! } else { ! GCTraceTime(Debug, gc, phases) trace("Cleanup", gc_timer()); ! g1h->partial_cleaning(&GenMarkSweep::is_alive, true, true, G1StringDedup::is_enabled()); } if (VerifyDuringGC) { HandleMark hm; // handle scope #if defined(COMPILER2) || INCLUDE_JVMCI
< prev index next >