On 02/05/2014 10:30 PM, Xueming Shen wrote:
Hi Remi,
Good suggestion. Now the "common case" path is much simple and faster :-)
I'm seeing a 5%-10% boost for the normal-non-surrogates case. And it
appears
the bmp+surr mixed is getting faster as well. Though I would assume
the it
would get slower in case of "no-case-folding" + surrogates. But the
common
case wins here.
http://cr.openjdk.java.net/~sherman/8032012/webrev/
Thanks!
-Sherman
nice, cool !
Rémi
On 02/05/2014 01:00 PM, Remi Forax wrote:
Hi Sherman,
the code can be faster if the first loop call toLowerCaseEx in case
of a surrogate instead of modifying srcCount because in that case the
JIT will see that the increment is constant.
Note that with the current code, the performance of toLowerCase if it
was never called with a string that contains a surrogate are great
but if toLowerCase is called once with a string that contains a
surrogate, even if toLowercase is called after with strings that
never contain a surrogate performance will be slower than it was.
Calling toLowerCaseEx will make a toLowerCase with a surrogate slower
but make toLowerCase faster in the common case.
cheers,
Rémi