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