RFR: 6988220: java.lang.ObjectName use of String.intern() causes major performance issues at scale

Vitaly Davidovich vitalyd at gmail.com
Thu Feb 23 15:58:47 UTC 2012


Hi Frederic,

Just curious - why are you checking string equality via compareTo() instead
of equals()?

Thanks

Sent from my phone
On Feb 23, 2012 10:37 AM, "Frederic Parain" <frederic.parain at oracle.com>
wrote:

> This a simple fix to solve CR 6988220:
> http://bugs.sun.com/**bugdatabase/view_bug.do?bug_**id=6988220<http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6988220>
>
> The use of String.intern() in the ObjectName class prevents
> the class the scale well when more than 20K ObjectNames are
> managed. The fix simply removes the use of String.intern(),
> and uses regular String instead. The Object.equals() method
> is modified too to make a regular String comparison. The
> complexity of this method now depends on the length of
> the ObjectName's canonical name, and is not impacted any
> more by the number of ObjectName instances being handled.
>
> The Webrev:
> http://cr.openjdk.java.net/~**fparain/6988220/webrev.00/<http://cr.openjdk.java.net/~fparain/6988220/webrev.00/>
>
> I've tested this fix with the jdk_lang and jdk_management
> test suites.
>
> Thanks,
>
> Fred
>
> --
> Frederic Parain - Oracle
> Grenoble Engineering Center - France
> Phone: +33 4 76 18 81 17
> Email: Frederic.Parain at oracle.com
>
>



More information about the core-libs-dev mailing list