< prev index next >
src/share/vm/gc/g1/g1MarkSweep.cpp
Print this page
@@ -152,21 +152,28 @@
// This is the point where the entire marking should have completed.
assert(GenMarkSweep::_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(&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) t("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 (VerifyDuringGC) {
HandleMark hm; // handle scope
#if defined(COMPILER2) || INCLUDE_JVMCI
DerivedPointerTableDeactivate dpt_deact;
< prev index next >