Lists Home |
Date Index |
- From: Tyler Baker <firstname.lastname@example.org>
- To: David Megginson <email@example.com>
- Date: Thu, 04 Feb 1999 20:37:57 -0500
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:firstname.lastname@example.org
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/ and on CD-ROM/ISBN 981-02-3594-1
To (un)subscribe, mailto:email@example.com the following message;
To subscribe to the digests, mailto:firstname.lastname@example.org the following message;
List coordinator, Henry Rzepa (mailto:email@example.com)