String interning (WAS: SAX2/Java: Towards a final form)

Miles Sabin msabin at
Wed Jan 12 20:07:08 GMT 2000

Tyler Baker wrote,
> Miles Sabin wrote,
> > [snip: table mapping to intern'd Strings]
> > Even tho' this only requires one java-intern for each 
> > distinct name it still provides plenty of opportunities for 
> > synchronization collisions.
> Nope. Names in XML are highly redundant especially for 
> Namespace prefixes. Also, even if the number of calls to 
> String.intern() were significant (which they rarely if ever 
> are), modern Java runtimes have lowered synchronization 
> overhead to be small enough that you don't really have to 
> think about it much in terms of impacting performance 
> anymore.

I think you're making two assumptions that don't always hold.
Not all java xml applications are one shot, single doctype:
some continuously parse multiple documents of a variety of 
doctypes in multiple threads. There's not necessarily _any_
particular upper bound on the number of distinct element and
attribute names that might be encountered. So there could be
continual contention for the JVM's intern table.

And I think you're assuming a single processor JVM. The
synchronization overhead picture is *very* different on multi-



Miles Sabin                       Cromwell Media
Internet Systems Architect        5/6 Glenthorne Mews
+44 (0)20 8817 4030               London, W6 0LJ, England
msabin at

xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at
Archived as: or CD-ROM/ISBN 981-02-3594-1
Please note: New list subscriptions now closed in preparation for transfer to OASIS.

More information about the Xml-dev mailing list