Mercurial > hg > truffle
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(); |