8027476: Improve performance of Stringtable unlink

8027455: Improve symbol table scan times during gc pauses

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
This commit is contained in:
Thomas Schatzl 2014-01-20 11:47:07 +01:00
parent 92d751996e
commit 4bb3631855
8 changed files with 306 additions and 61 deletions

View file

@ -1619,7 +1619,6 @@ public:
}
};
class G1ParVerifyFinalCountTask: public AbstractGangTask {
protected:
G1CollectedHeap* _g1h;
@ -2529,10 +2528,7 @@ void ConcurrentMark::weakRefsWork(bool clear_all_soft_refs) {
assert(!rp->discovery_enabled(), "Post condition");
}
// Now clean up stale oops in StringTable
StringTable::unlink(&g1_is_alive);
// Clean up unreferenced symbols in symbol table.
SymbolTable::unlink();
g1h->unlink_string_and_symbol_table(&g1_is_alive);
}
void ConcurrentMark::swapMarkBitMaps() {