recursion in XML parser

Kay Michael Michael.Kay at
Thu Apr 15 20:09:35 BST 1999

> My reasoning for not using recursion was performance 
> (function call/stack framing
> considerations) and that it made the code easier to understand.  

Did not-using-recursion make it faster? I'd be surprised. The superstition
recursion is slow dates back to COBOL and IBM 360 days, i.e. to machine
with very inefficient memory architectures and subroutine calls. I don't
know much about the Java VM, but I doubt it shares those characteristics.

"Easier to understand" is obviously in the eye of the beholder, but in my
recursive algorithms are usually far easier to understand than their
non-recursive equivalents.
> It would be interesting to do some benchmarks on various 
> parsers out there to measure performance.  The Java parsers I've tested
(Sun, IBM) 
> are _dog_ slow compared to expat, etc.

How slow is a dog (greyhounds are quite fast)? What kind of factor are you
talking about? A lot depends on your Java VM implementation. My experience
is that most of the mill is used in my application, not in the parser.

> For server-side I don't think that matters, since in the corporate scene
> tend to just add more servers/infrastructure and not worry about

Not true when you're serving a million pages a day! Except that in that
scenario we cache the rendered pages so we don't keep re-rendering the same
thing. But a factor of 2 in performance is definitely worth investing in.

> Client-side XML is a completely different kettle o' fish tho' 
> since you can't just keep popping in processors every time your machine at

> home/work bogs down.

On the contrary: you've got a rather strange client configuration if it
takes longer to render a page on your machine than to download it.

Mike Kay

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