#6931812
Martin Buchholz wrote:
Sherman, would you like to file bugs for Ulf's improvements?
On Wed, Mar 3, 2010 at 02:44, Ulf Zibis <ulf.zi...@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