On Mon, 12 Jul 2021 15:36:29 GMT, Andrew Haley <a...@openjdk.org> wrote:

> And with longer strings, M1 and ThunderX2:
> 
> ```
> Benchmark                                       (diff_pos)  (size)  Mode  Cnt 
>   Score   Error  Units
> StringCompare.compareLLDiffStrings                    1023    1024  avgt    3 
>  50.849 ± 0.087  us/op
> StringCompare.compareLLDiffStringsWithLdp             1023    1024  avgt    3 
>  23.676 ± 0.015  us/op
> StringCompare.compareLLDiffStringsWithRefactor        1023    1024  avgt    3 
>  28.967 ± 0.168  us/op
> ```
> 
> ```
> StringCompare.compareLLDiffStrings                    1023    1024  avgt    3 
>  98.681 ± 0.026  us/op
> StringCompare.compareLLDiffStringsWithLdp             1023    1024  avgt    3 
>  82.576 ± 0.656  us/op
> StringCompare.compareLLDiffStringsWithRefactor        1023    1024  avgt    3 
>  98.801 ± 0.321  us/op
> ```
> 
> LDP wins on M1 here, but on ThunderX2 it makes almost no difference at all. 
> And how often are we comparing such long strings?
> I don't know what to think, really. It seems that we're near to a place where 
> we're optimizing for micro-architecture, and I don't want to see that here. 
> On the other hand, using LDP is not worse anywhere, so we should allow it.

Thank you for your suggestion. I inspect the result and find that the result of 
my first commit (c5e29b9fedae7e1d24056a6fae8aff04afeb3889) is better. Because 
of that , I will choose the version without refacting 
`compare_string_16_bytes_same` as the final version.

-------------

PR: https://git.openjdk.java.net/jdk/pull/4722

Reply via email to