String interning (WAS: SAX2/Java: Towards a final form)
msabin at cromwellmedia.co.uk
Thu Jan 13 10:57:46 GMT 2000
David Brownell wrote,
> So Miles, if you prefer the occasional synchronization issue
> to the routine method invocation overhead, use a parser that
> obliges you. (Yes, I'm assuming SAX2 doesn't mandate any
> interning, just exposes whether or not it's done.)
Well, if your assumption is correct, then fine. But I rather
got the impression that some people wanted SAX2 to make
guarantees about Strings being returned java-interned.
> Though I daresay you'll find that the synchronization isn't
> usually measurable, while your evidently preferred
> alternative (lots of String.equals calls) will consistently
> show up as a performance problem. At least that's been the
> case when I've made such measurements.
Except that String.intern() isn't the _only_ way of making
foo.equals(bar) iff foo == bar (in particular contexts, as
opposed to across the whole JVM).
I use thread-local app-interning and ==, or no interning at all
and String.equals() ... as Arkin noted the overhead in the
latter case isn't too bad with a decent JIT.
Miles Sabin Cromwell Media
Internet Systems Architect 5/6 Glenthorne Mews
+44 (0)20 8817 4030 London, W6 0LJ, England
msabin at cromwellmedia.com http://www.cromwellmedia.com/
xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at ic.ac.uk
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/ or CD-ROM/ISBN 981-02-3594-1
Please note: New list subscriptions now closed in preparation for transfer to OASIS.
More information about the Xml-dev