On Tue, 16 Mar 2021 12:51:02 GMT, Claes Redestad <redes...@openjdk.org> wrote:
> This patch changes the otherLowercase / otherUppercase bits to be set if > either the codepoint is of type LOWERCASE_LETTER and UPPERCASE_LETTER, or the > Unicode Other_Lowercase / Other_Uppercase property is set. This simplifies > the lookup in Character.isLowerCase/isUpperCase to a single table lookup, > which appears to be healthy for performance. > > I also took the opportunity to clean up the somewhat dated GenerateCharacter > utility class. > > Testing: tier1-3 Baseline: Benchmark (codePoint) Mode Cnt Score Error Units Characters.isLowerCase 9 avgt 5 13.809 ± 0.032 ns/op Characters.isLowerCase 65 avgt 5 13.811 ± 0.052 ns/op Characters.isLowerCase 97 avgt 5 12.552 ± 0.057 ns/op Characters.isLowerCase 128 avgt 5 13.823 ± 0.076 ns/op Characters.isLowerCase 170 avgt 5 13.811 ± 0.066 ns/op Characters.isLowerCase 223 avgt 5 12.556 ± 0.058 ns/op Characters.isLowerCase 410 avgt 5 19.466 ± 0.104 ns/op Characters.isLowerCase 430 avgt 5 20.718 ± 0.100 ns/op Characters.isUpperCase 9 avgt 5 12.556 ± 0.056 ns/op Characters.isUpperCase 65 avgt 5 12.559 ± 0.067 ns/op Characters.isUpperCase 97 avgt 5 12.555 ± 0.055 ns/op Characters.isUpperCase 128 avgt 5 12.559 ± 0.060 ns/op Characters.isUpperCase 170 avgt 5 12.556 ± 0.036 ns/op Characters.isUpperCase 223 avgt 5 12.554 ± 0.055 ns/op Characters.isUpperCase 410 avgt 5 20.722 ± 0.129 ns/op Characters.isUpperCase 430 avgt 5 19.459 ± 0.091 ns/op Patch: Benchmark (codePoint) Mode Cnt Score Error Units Characters.isLowerCase 9 avgt 5 12.556 ± 0.035 ns/op Characters.isLowerCase 65 avgt 5 12.562 ± 0.073 ns/op Characters.isLowerCase 97 avgt 5 12.551 ± 0.062 ns/op Characters.isLowerCase 128 avgt 5 12.553 ± 0.039 ns/op Characters.isLowerCase 170 avgt 5 12.554 ± 0.051 ns/op Characters.isLowerCase 223 avgt 5 12.552 ± 0.035 ns/op Characters.isLowerCase 410 avgt 5 18.833 ± 0.068 ns/op Characters.isLowerCase 430 avgt 5 18.832 ± 0.074 ns/op Characters.isUpperCase 9 avgt 5 12.555 ± 0.050 ns/op Characters.isUpperCase 65 avgt 5 12.557 ± 0.041 ns/op Characters.isUpperCase 97 avgt 5 12.554 ± 0.056 ns/op Characters.isUpperCase 128 avgt 5 12.554 ± 0.055 ns/op Characters.isUpperCase 170 avgt 5 12.555 ± 0.054 ns/op Characters.isUpperCase 223 avgt 5 12.553 ± 0.036 ns/op Characters.isUpperCase 410 avgt 5 18.831 ± 0.099 ns/op Characters.isUpperCase 430 avgt 5 18.826 ± 0.047 ns/op ------------- PR: https://git.openjdk.java.net/jdk/pull/3028