SAX, Java, and Namespaces (was Re: Restricted Namespaces for XML)

Tyler Baker tyler at
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...


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 (un)subscribe, mailto:majordomo at the following message;
(un)subscribe 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