src/share/vm/classfile/symbolTable.hpp
Print this page
rev 4736 : 8015422: Large performance hit when the StringTable is walked twice in Parallel Scavenge
Summary: Combine the calls to StringTable::unlink and StringTable::oops_do in Parallel Scavenge.
Reviewed-by: TBD1, TBD2
*** 270,280 ****
_the_table = new StringTable();
}
// GC support
// Delete pointers to otherwise-unreachable objects.
! static void unlink(BoolObjectClosure* cl);
// Invoke "f->do_oop" on the locations of all oops in the table.
static void oops_do(OopClosure* f);
// Hashing algorithm, used as the hash value used by the
--- 270,283 ----
_the_table = new StringTable();
}
// GC support
// Delete pointers to otherwise-unreachable objects.
! static void unlink(BoolObjectClosure* cl, OopClosure* keep_alive);
! static void unlink(BoolObjectClosure* cl) {
! unlink(cl, NULL);
! }
// Invoke "f->do_oop" on the locations of all oops in the table.
static void oops_do(OopClosure* f);
// Hashing algorithm, used as the hash value used by the