Shenandoah WB and XMM spills?
Aleksey Shipilev
shade at redhat.com
Mon Dec 11 11:42:00 UTC 2017
Following up on some performance experiments, it seems that enabling Shenandoah WB disables XMM
spills, and that makes more L1 load/stores, which seems to be responsible for performance difference.
$ java -jar target/benchmarks.jar Serial --jvmArgs "-Xmx16g -Xms16g -XX:+AlwaysPreTouch
-XX:-TieredCompilation -XX:+DisableExplicitGC -XX:+UseShenandoahGC -XX:+UnlockDiagnosticVMOptions
-XX:ShenandoahGCHeuristics=passive" -f 1 -t 1 -prof perfasm
# -XX:-ShenandoahWriteBarrier
2484.287 ± 2.759 ops/s
http://cr.openjdk.java.net/~shade/shenandoah/wtf-wb-xmm/wb-disabled.perfasm
(I see %xmm-based spills here)
# -XX:+ShenandoahWriteBarrier
2303.283 ± 4.912 ops/s
http://cr.openjdk.java.net/~shade/shenandoah/wtf-wb-xmm/wb-enabled.perfasm
(I see %rsp-based spills here)
Thanks,
-Aleksey
More information about the shenandoah-dev
mailing list