SAX2: Namespace proposal
david-b at pacbell.net
Tue Dec 21 19:37:17 GMT 1999
[ interning, not sax2 or namespaces ]
David Megginson wrote:
> Joe Lapp <jlapp at webMethods.com> 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!
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/ and on CD-ROM/ISBN 981-02-3594-1
To unsubscribe, mailto:majordomo at ic.ac.uk the following message;
To subscribe to the digests, mailto:majordomo at ic.ac.uk the following message;
List coordinator, Henry Rzepa (mailto:rzepa at ic.ac.uk)
More information about the Xml-dev