[jdom-interest] Re: Reading XML with JDOM
Tatu Saloranta
cowtowncoder at yahoo.com
Fri Oct 3 13:41:01 PDT 2008
--- On Fri, 10/3/08, David Wall <david.wall at myeastside.com> wrote:
> Michael has it right -- penny-wise and pound foolish
> won't result in a
> good performing system.
Agreed. And if network _latency_ is the problem, generally batching of multiple requests and using pipelining (both for http, and in general pipelined processing) can help more here.
But:
> If your XML is really that simple, maybe XML parsing it is
> not even the right solution, though SAX would surely do well. Much
...
> XML parsers are very general, so they are very useful. But if your data
> is simple, you may find simple string parsing yourself to
> be the fastest.
I 100% disagree. One should never ever ever try use to use simple String for doing job of an xml parser if a good parser is available.
Likewise, it seldom makes sense to use String appends for xml generation. Those are among biggest anti-patterns in simpl(e|istic) xml processing.
In both cases you will end up with slower not faster performance; but most importantly will probably hit most common problems with such approach (quoting of less-thans and ampersands; encoding issues, assuming formatting wrt. white space, forgetting about CDATA sections, comments, PIs and so on).
And even performance-wise current xml parsers (sax and stax) are ridiculously heavily optimized and do good job at working fast.
You can benchmark approaches to see for yourself, but I have yet to see a case where hand-written string scanner made sense.
And finally, JDOM is not an xml parser (I hope that's what FAQ says): it is true that building a tree model is overhead that is relatively easy to eliminate.
My advice would really be to look at JAXB ref. implementation (javax.xml.bind), coupled with a fast Sax or Stax parser. That is a very convenient and high performance combo, and sounds like a good fit for the original use case.
-+ Tatu +-
More information about the jdom-interest
mailing list