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