On Mon, 20 Feb 2023 15:40:09 GMT, Claes Redestad <[email protected]> wrote:
>> Eirik Bjorsnos has updated the pull request incrementally with two
>> additional commits since the last revision:
>>
>> - Add @bug tag to EqualsIgnoreCase test for correct issue JDK-8302871
>> - Add @bug tag to EqualsIgnoreCase test for JDK-8302877
>
> src/java.base/share/classes/java/lang/CharacterDataLatin1.java.template line
> 170:
>
>> 168: * @return true if the two bytes are considered equals ignoring
>> case in latin1
>> 169: */
>> 170: static boolean equalsIgnoreCase(byte b1, byte b2) {
>
> Perhaps put this in `CharacterDataLatin1`, keeping it close to
> toLowerCase/toUpperCase that you're changing to use similar logic with #12623
>
> If you apply #12623 first - how much difference does this make on the micro
> you're adding with this PR?
Is it not already in CharacterDataLatin1?
Here is a comparison of relying on improvements in
`CharacterDataLatin1.toUpperCase/toLowerCase` only vs. using
`CharacterDataLatin1.equalsIgnoreCase`:
Character.toUpperCase/toLowerCase only:
Benchmark (codePoints) (size) Mode Cnt
Score Error Units
RegionMatchesIC.Latin1.regionMatchesIC ascii-match 1024 avgt 15
1310.582 ± 84.777 ns/op
RegionMatchesIC.Latin1.regionMatchesIC ascii-mismatch 1024 avgt 15
4.547 ± 0.545 ns/op
RegionMatchesIC.Latin1.regionMatchesIC number-match 1024 avgt 15
686.947 ± 11.850 ns/op
RegionMatchesIC.Latin1.regionMatchesIC number-mismatch 1024 avgt 15
3.836 ± 0.634 ns/op
RegionMatchesIC.Latin1.regionMatchesIC lat1-match 1024 avgt 15
2107.219 ± 17.662 ns/op
RegionMatchesIC.Latin1.regionMatchesIC lat1-mismatch 1024 avgt 15
4.924 ± 0.829 ns/op
CharacterDataLatin1.equalsIgnoreCase:
Benchmark (codePoints) (size) Mode Cnt
Score Error Units
RegionMatchesIC.Latin1.regionMatchesIC ascii-match 1024 avgt 15
742.467 ± 34.490 ns/op
RegionMatchesIC.Latin1.regionMatchesIC ascii-mismatch 1024 avgt 15
3.960 ± 0.046 ns/op
RegionMatchesIC.Latin1.regionMatchesIC number-match 1024 avgt 15
361.158 ± 37.096 ns/op
RegionMatchesIC.Latin1.regionMatchesIC number-mismatch 1024 avgt 15
4.039 ± 0.521 ns/op
RegionMatchesIC.Latin1.regionMatchesIC lat1-match 1024 avgt 15
1158.091 ± 41.617 ns/op
RegionMatchesIC.Latin1.regionMatchesIC lat1-mismatch 1024 avgt 15
4.358 ± 0.123 ns/op
-------------
PR: https://git.openjdk.org/jdk/pull/12632