RFR: Lazy parallel code cache iterator

Roman Kennke rkennke at redhat.com
Tue May 23 09:52:57 UTC 2017


Am 23.05.2017 um 11:06 schrieb Aleksey Shipilev:
> Hi,
>
> The last time we improved code cache iterator with more parallelism, and it
> improved the pause times. However, we had to do the eager preparation stage in
> its constructor, which means we scan code cache during ShenandoahRP
> construction, even if we skip code cache iteration later! Which means we have
> redundant work during Init Mark and Final Update-Refs pauses.
>
> The fix is to redo the iterator to be lazy again, while maintaining parallelism:
>   http://cr.openjdk.java.net/~shade/shenandoah/codecache-lazyparallel/webrev.01/
>
> Before/after on SPECjbb:
>  http://cr.openjdk.java.net/~shade/shenandoah/codecache-lazyparallel/baseline.log
>  http://cr.openjdk.java.net/~shade/shenandoah/codecache-lazyparallel/patched.log
>
> Saves 3..8 ms per pause!
>
> Testing: hotspot_gc_shenandoah, jcstress/fastdebug/aggressive
>
> -Aleksey
>
Very cool! Go!


Roman



More information about the shenandoah-dev mailing list