review request for 6798511/6860431: Include functionality of Surrogate in Character

Martin Buchholz martinrb at google.com
Wed Mar 3 16:06:14 UTC 2010


Sherman, would you like to file bugs for Ulf's improvements?

On Wed, Mar 3, 2010 at 02:44, Ulf Zibis <Ulf.Zibis at gmx.de> wrote:
> Am 03.03.2010 09:00, schrieb Martin Buchholz:

>> Keep in mind that supplementary characters are extremely rare.
>>
>
> Yes, but many API's in the JDK are used rarely.
> Why should they waste memory footprint / perform bad, particularly if it
> doesn't cost anything.

I admire your perfectionism.

>> Therefore the existing implementation
>>
>>  return codePoint>= MIN_SUPPLEMENTARY_CODE_POINT
>>             &&  codePoint<= MAX_CODE_POINT;
>>
>> will almost always perform just one comparison against a constant,
>> which is hard to beat.
>>
>
> 1. Wondering: I think there are TWO comparisons.
> 2. Those comparisons need to load 32 bit values from machine code, against
> only 8 bit values in my case.

It's a good point.  In the machine code, shifts are likely to use
immediate values, and so will be a small win.

int x = codePoint >>> 16;
return x != 0 && x < 0x11;

(On modern hardware, these optimizations
are less valuable than they used to be;
ordinary integer arithmetic is almost free)

Martin



More information about the core-libs-dev mailing list