comparison src/share/vm/classfile/symbolTable.hpp @ 10363:8dbc025ff709

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: pliden, coleenp
author stefank
date Mon, 27 May 2013 12:58:42 +0200
parents ede380e13960
children 01522ca68fc7
comparison
equal deleted inserted replaced
10362:95c00927be11 10363:8dbc025ff709
270 _the_table = new StringTable(); 270 _the_table = new StringTable();
271 } 271 }
272 272
273 // GC support 273 // GC support
274 // Delete pointers to otherwise-unreachable objects. 274 // Delete pointers to otherwise-unreachable objects.
275 static void unlink(BoolObjectClosure* cl); 275 static void unlink_or_oops_do(BoolObjectClosure* cl, OopClosure* f);
276 static void unlink(BoolObjectClosure* cl) {
277 unlink_or_oops_do(cl, NULL);
278 }
276 279
277 // Invoke "f->do_oop" on the locations of all oops in the table. 280 // Invoke "f->do_oop" on the locations of all oops in the table.
278 static void oops_do(OopClosure* f); 281 static void oops_do(OopClosure* f);
279 282
280 // Hashing algorithm, used as the hash value used by the 283 // Hashing algorithm, used as the hash value used by the