8015422: Large performance hit when the StringTable is walked twice in Parallel Scavenge

Combine the calls to StringTable::unlink and StringTable::oops_do in Parallel Scavenge.

Reviewed-by: pliden, coleenp
This commit is contained in:
Stefan Karlsson 2013-05-27 12:58:42 +02:00
parent 8b7d3c5d3b
commit c13149ab8d
3 changed files with 11 additions and 7 deletions

View file

@ -272,7 +272,10 @@ public:
// GC support
// Delete pointers to otherwise-unreachable objects.
static void unlink(BoolObjectClosure* cl);
static void unlink_or_oops_do(BoolObjectClosure* cl, OopClosure* f);
static void unlink(BoolObjectClosure* cl) {
unlink_or_oops_do(cl, NULL);
}
// Invoke "f->do_oop" on the locations of all oops in the table.
static void oops_do(OopClosure* f);