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