SAX2: Namespace proposal

David Brownell david-b at
Tue Dec 21 19:37:17 GMT 1999

[ interning, not sax2 or namespaces ] 

David Megginson wrote:
> Joe Lapp <jlapp at> writes:
> > Using Java String interning, how do you guys guarantee performance
> > in any of the DOM Element get*() methods that take Strings?  Do you
> > require that the app intern the string before passing it in?  Do you
> > try to make the methods smart so that if they're interned, you get
> > performance, and if they aren't, you get a bit more of a penalty
> > (for having done the intern check first)? 

Lotsa questions ... the optimization isn't _specifically_ for DOM.

Note that starting sometime around JDK 1.1.6 or so, String.equals()
tests for equality before it does much else; a classic trick that
someone omitted in JDK 1.0, perhaps to ensure that the other code
paths got fully debugged (or perhaps just a performance bug).

What this means is that if you consistently use a string returned by
a SAX parser (interned either localy or, for bigger win, globally)
you'll detect the "equals == true" case much more quickly, on average.

>	 Do you make them dumb so
> > that if you forgot to intern, you don't get anything?  Or would one
> > always intern these externally provided Strings within the method?
> With the DOM, I think, the biggest issue is not performance but memory
> usage -- you do not want 500 separate "div2" strings floating around
> in the same tree.  Interning is much more obviously essential for a
> tree API than it is for a streaming API.

And the CPU performance improvement is "on average"; yes, the memory
performance improvement is a bit more direct in that scenario!

- Dave

xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at
Archived as: and on CD-ROM/ISBN 981-02-3594-1
To unsubscribe, mailto:majordomo at the following message;
unsubscribe xml-dev
To subscribe to the digests, mailto:majordomo at the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa at

More information about the Xml-dev mailing list