< prev index next >

src/share/vm/gc/serial/genMarkSweep.cpp

Print this page

        

*** 216,239 **** --- 216,249 ---- } // This is the point where the entire marking should have completed. assert(_marking_stack.is_empty(), "Marking should have completed"); + { + GCTraceTime(Debug, gc) tm_m("Class Unloading", gc_timer()); + // Unload classes and purge the SystemDictionary. bool purged_class = SystemDictionary::do_unloading(&is_alive); // Unload nmethods. CodeCache::do_unloading(&is_alive, purged_class); // Prune dead klasses from subklass/sibling/implementor lists. Klass::clean_weak_klass_links(&is_alive); + } + { + GCTraceTime(Debug, gc) t("Scrub String Table", gc_timer()); // Delete entries for dead interned strings. StringTable::unlink(&is_alive); + } + { + GCTraceTime(Debug, gc) t("Scrub Symbol Table", gc_timer()); // Clean up unreferenced symbols in symbol table. SymbolTable::unlink(); + } gc_tracer()->report_object_count_after_gc(&is_alive); }
< prev index next >