comparison src/share/vm/gc_implementation/g1/g1MarkSweep.cpp @ 17634:5a32d2a3cc1e

8027476: Improve performance of Stringtable unlink 8027455: Improve symbol table scan times during gc pauses Summary: Parallelize string table and symbol table scan during remark and full GC. Some additional statistics output if the experimental flag G1TraceStringSymbolTableScrubbing is set. Reviewed-by: mgerdin, coleenp, brutisso
author tschatzl
date Mon, 20 Jan 2014 11:47:07 +0100
parents d55c004e1d4d
children 870aedf4ba4f 58fc1b1523dc
comparison
equal deleted inserted replaced
17633:04f1d5d36714 17634:5a32d2a3cc1e
161 CodeCache::do_unloading(&GenMarkSweep::is_alive, purged_class); 161 CodeCache::do_unloading(&GenMarkSweep::is_alive, purged_class);
162 162
163 // Prune dead klasses from subklass/sibling/implementor lists. 163 // Prune dead klasses from subklass/sibling/implementor lists.
164 Klass::clean_weak_klass_links(&GenMarkSweep::is_alive); 164 Klass::clean_weak_klass_links(&GenMarkSweep::is_alive);
165 165
166 // Delete entries for dead interned strings. 166 // Delete entries for dead interned string and clean up unreferenced symbols in symbol table.
167 StringTable::unlink(&GenMarkSweep::is_alive); 167 G1CollectedHeap::heap()->unlink_string_and_symbol_table(&GenMarkSweep::is_alive);
168
169 // Clean up unreferenced symbols in symbol table.
170 SymbolTable::unlink();
171 168
172 if (VerifyDuringGC) { 169 if (VerifyDuringGC) {
173 HandleMark hm; // handle scope 170 HandleMark hm; // handle scope
174 COMPILER2_PRESENT(DerivedPointerTableDeactivate dpt_deact); 171 COMPILER2_PRESENT(DerivedPointerTableDeactivate dpt_deact);
175 Universe::heap()->prepare_for_verify(); 172 Universe::heap()->prepare_for_verify();