RFR (S): Invert matrix index computation
Roman Kennke
rkennke at redhat.com
Thu Apr 13 18:54:27 UTC 2017
Am 13.04.2017 um 20:38 schrieb Aleksey Shipilev:
> Hi,
>
> It makes sense to change matrix index computation like this:
> (from*stride + to) ---> (from + to*stride)
>
> This is because we are most frequently scanning incoming connections for a given
> region, so the memory access is denser if we group matrix by "to". Requires
> trivial changes in all barrier implementations:
> http://cr.openjdk.java.net/~shade/shenandoah/matrix-invert/webrev.01/
>
> It does improve Partial GC preparation time, and therefore cuts the total pauses:
>
> before:
> Partial GC (net) = 32.36 s (a = 8859 us) (n = 3653)
> (lvls, us = 1328, 6875, 8809, 10742, 22201)
>
> after:
> Partial GC (net) = 24.07 s (a = 6009 us) (n = 4005)
> (lvls, us = 928, 4883, 6016, 7031, 39491)
>
> Testing: hotspot_gc_shenandoah, benchmarks with -XX:+VerifyShenandoahMatrix
>
> Thanks,
> -Aleksey
>
Sounds fine.
Roman
More information about the shenandoah-dev
mailing list