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