[aarch64-port-dev ] [10] RFR: 8187472 - AARCH64: array_equals intrinsic doesn't use prefetch for large arrays

Andrew Haley aph at redhat.com
Wed Nov 15 10:34:21 UTC 2017


On 15/11/17 08:34, Ningsheng Jian wrote:
> Hi Dmitrij,
> 
> I can see regressions on some hardware with your patch.
> 
> Could you please try the micro-benchmark below on your systems?
> 
> http://people.linaro.org/~ningsheng.jian/test/StringOps.java
> 
> $ java -jar ./target/benchmarks.jar "StringEqualsLarge" -wi 10 -f 3 -i 10
> 
> Seems that your patch affects the inlining.

Before the patch:

StringOps.jmhTimeStringEqualsIgnoreCaseLarge         avgt   10  2984.638 ? 12.899  ns/op
StringOps.jmhTimeStringEqualsIgnoreCaseSmall         avgt   10   319.434 ?  0.434  ns/op
StringOps.jmhTimeStringEqualsLarge                   avgt   10   146.122 ?  0.638  ns/op
StringOps.jmhTimeStringEqualsSmall                   avgt   10    45.998 ?  0.444  ns/op

After:
                                     Mode  Cnt     Score   Error  Units
StringOps.jmhTimeStringEqualsIgnoreCaseLarge  avgt   10  2982.222 ? 3.683  ns/op
StringOps.jmhTimeStringEqualsIgnoreCaseSmall  avgt   10   319.671 ? 0.902  ns/op
StringOps.jmhTimeStringEqualsLarge            avgt   10  1137.348 ? 1.088  ns/op
StringOps.jmhTimeStringEqualsSmall            avgt   10   194.698 ? 0.857  ns/op

Gosh.  I think that's a very bad patch.

-- 
Andrew Haley
Java Platform Lead Engineer
Red Hat UK Ltd. <https://www.redhat.com>
EAC8 43EB D3EF DB98 CC77 2FAD A5CD 6035 332F A671


More information about the aarch64-port-dev mailing list