Or simply;
if (anObject instanceof String) {
String aString = (String)anObject;
if (coder() == aString.coder())
return Arrays.equals(value, aString.value);
}
}
Sent from my iPhone
> On Dec 6, 2018, at 10:56 PM, Stuart Marks <[email protected]> wrote:
>
>> On 12/6/18 2:42 PM, Claes Redestad wrote:
>> I filed this bug after seeing it in startup profiles, where isEmpty() avoids
>> an instanceof and four(!) method calls, so getting rid of a few of these has
>> a measurable impact on startup. It seemed prudent to just replace it all
>> while we're at it.
>
> Interesting. The compact strings stuff saves a lot of space, but it means
> that more setup work needs to be done before an actual equality comparison
> can be done. Thus, equals("") has gotten quite a bit more expensive relative
> to isEmpty() compared with the situation prior to compact strings.
>
> Still, it seems like a method call could be saved here:
>
> if (anObject instanceof String) {
> String aString = (String)anObject;
> if (coder() == aString.coder()) {
> return isLatin1() ? StringLatin1.equals(value, aString.value)
> : StringUTF16.equals(value, aString.value);
> }
> }
>
> by saving the result of coder() in a local variable and then comparing it
> directly to LATIN1. Is it worth it?
>
> (Note, this isn't relevant to the current review.)
>
> s'marks