RFR (M): Avoid touching metadata if class unloading is not requested
Aleksey Shipilev
shade at redhat.com
Mon Jan 23 23:15:30 UTC 2017
Hi,
This wild idea is due to Roman. In many GC cycles, we don't unload the classes,
and therefore, we don't need to see which classes are alive. With that, we don't
need to touch Klasses and CLDs in most cycles. Here's a patch that improves on this:
http://cr.openjdk.java.net/~shade/shenandoah/concmark-no-metadata/webrev.01/
It also touches up a few places in concurrent mark code to get better inlining.
Marking a large HashMap improves quite a bit:
before:
Concurrent Marking = 134.99 s (a = 1249911 us) (n = 108)
(lvls, us = 869141, 1210938, 1250000, 1269531, 1326828)
after:
Concurrent Marking = 124.58 s (a = 1132579 us) (n = 110)
(lvls, us = 787500, 1113281, 1152344, 1171875, 1215482)
Testing: hotspot_gc_shenandoah
Thanks,
-Aleksey
More information about the shenandoah-dev
mailing list