SAX, Java, and Namespaces (was Re: Restricted Namespaces for XML)
Tyler Baker
tyler at infinet.com
Fri Feb 5 01:39:10 GMT 1999
David Megginson wrote:
> Tyler Baker writes:
>
> > As of JDK 1.1.6 things are not so bad and Java 2 is a bit better as
> > interned Strings are under the hood managed using Weak References.
> > It could be made better in the JDK though. I suspect if they made
> > a real effort in the Java 2 JVM they could make string interns at
> > least twice as fast as things currently are. Nevertheless, string
> > interning is a one time cost so lets put that in perspective here.
>
> No, unfortunately it's much worse -- the parser has to re-intern
> *every* element name and attribute name during the parse, so if I have
> 6,000 attributes named 'foo', I have to invoke intern 6,000 times
The implementation I have in an XML Parser I wrote only calls intern on strings which are not
cached. I do this mostly to reduce calls to new String().intern(). It sure would of been
nice if there was a static intern method in the String class that accepted a character array
and used the contents to fetch an interned string (or else create a new one if the string is
not present in the VM).
> (just for those attributes). When I was writing AElfred, I got
> something between a 10-30% speedup (I cannot remember the number) by
> dropping Java's intern and writing my own. A bad intern is a killer
> for an XML parser.
Yah, it is really bad if you don't do any sort of String caching as well. Sorry to confuse
you here with what I meant by interning strings...
Tyler
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 (un)subscribe, mailto:majordomo at ic.ac.uk the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo at ic.ac.uk the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa at ic.ac.uk)
More information about the Xml-dev
mailing list