<div dir="ltr">Michael<div><br></div><div>The XML is to be obtained over a www URL. Our networks are T1 speed and performing their best. There isn&#39;t a problem with the network latency, but I acknowledge that retrieving the XML file over a www URL is probably the most time consuming procedure for my application. Www Network latency aside, I want to assure that whatever APIs/frameworks I use for parsing the XML are the fastest. For the purposes of measuring the performance of the parser, I am using a XML file located in the file system and removing the network latency aspect. Is this a valid method to measure the parser&#39;s performance?</div>
<div><br></div><div>-- Praveen<br><br><div class="gmail_quote">On Thu, Oct 2, 2008 at 3:49 PM, Michael Kay <span dir="ltr">&lt;<a href="mailto:mike@saxonica.com">mike@saxonica.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

<div>
<div dir="ltr" align="left"><span><font face="Arial" color="#0000ff" size="2">You&#39;re asking about how to read the data efficiently with
JDOM, but I suspect that if you are looking for performance then you might be
looking in the wrong part of your system.</font></span></div>
<div dir="ltr" align="left"><span><font face="Arial" color="#0000ff" size="2"></font></span>&nbsp;</div>
<div dir="ltr" align="left"><span><font face="Arial" color="#0000ff" size="2">XML parser start-up costs can be very high; initializing
the parser for each document could easily turn out to be the dominant cost in
this application. You can get a lot of saving by reusing parser instances. I
don&#39;t know what JDOM&#39;s initialization costs for building a document are, but you
need to check them too.</font></span></div>
<div><span><font face="Arial" color="#0000ff" size="2"></font></span>&nbsp;</div>
<div><span><font face="Arial" color="#0000ff" size="2">At any
rate, building a JDOM tree almost certainly takes longer than extracting the
data from the tree once built.</font></span></div>
<div><span><font face="Arial" color="#0000ff" size="2"></font></span>&nbsp;</div>
<div><span><font face="Arial" color="#0000ff" size="2">I find
this statement a bit worrying:</font></span></div><div class="Ih2E3d">
<div><span><font face="Arial" color="#0000ff" size="2"></font></span>&nbsp;</div>
<div><span>&gt;Anyway, since there is probably not much
I can do with the network latency, I am trying to keep the Java code as skinny
and efficient as possible.<br></span></div>
</div><div><span><font face="Arial" color="#0000ff" size="2">That
seems to be an inversion of the way performance engineering should be done. If
network latency is the dominant cost, then effort spent on tuning your Java code
is a total waste of time.</font></span></div>
<div><span><font face="Arial" color="#0000ff" size="2"></font></span>&nbsp;</div>
<div><span><font face="Arial" color="#0000ff" size="2">I
would focus your attention on measuring performance, end to end, before you
start tuning anything.</font></span></div>
<div><span><font face="Arial" color="#0000ff" size="2"></font></span>&nbsp;</div>
<div><span><font face="Arial" color="#0000ff" size="2">Michael Kay</font></span></div>
<div><span><font face="Arial" color="#0000ff" size="2"><a href="http://www.saxonica.com/" target="_blank">http://www.saxonica.com/</a></font></span></div>
<div dir="ltr" align="left"><br></div>
<blockquote dir="ltr" style="padding-left:5px;margin-left:5px;border-left:#0000ff 2px solid;margin-right:0px">
<div lang="en-us" dir="ltr" align="left">
<hr>
<font face="Tahoma" size="2"><b>From:</b> <a href="mailto:jdom-interest-bounces@jdom.org" target="_blank">jdom-interest-bounces@jdom.org</a>
[mailto:<a href="mailto:jdom-interest-bounces@jdom.org" target="_blank">jdom-interest-bounces@jdom.org</a>] <b>On Behalf Of </b>Praveen
Gattu<br><b>Sent:</b> 02 October 2008 23:04<br><b>To:</b> Paul
Libbrecht<br><b>Cc:</b> <a href="mailto:jdom-interest@jdom.org" target="_blank">jdom-interest@jdom.org</a><br><b>Subject:</b> Re:
[jdom-interest] Re: Reading XML with JDOM<br></font><br></div><div><div></div><div class="Wj3C7c">
<div></div>
<div dir="ltr">Paul,<br><br>Thanks for the response. My XML is really as simple
as the one I posted. The 8,500 documents are retrieved over a HTTP URL. So add
network latency, which makes it longer than a minute, unless my XML parser is
extremely fast. Anyway, since there is probably not much I can do with the
network latency, I am trying to keep the Java code as skinny and efficient as
possible.<br><br>Would you be able to provide sample code for the solution you
suggested?<br><br>
<div class="gmail_quote">On Thu, Oct 2, 2008 at 2:27 PM, Paul Libbrecht <span dir="ltr">&lt;<a href="mailto:paul@activemath.org" target="_blank">paul@activemath.org</a>&gt;</span>
wrote:<br>
<blockquote class="gmail_quote" style="padding-left:1ex;margin:0pt 0pt 0pt 0.8ex;border-left:rgb(204,204,204) 1px solid">Praveen,<br><br>in
jdom you would just parse then take the root, then the employee, the extract
last-name and ssn.<br>It is ignoring from the point of view of your
programme but not from the point of view of parsing.<br><br>Where you can
save is by changing the xml technology... if your document is as simple as
below then using sax has greater performance guarantees (you really cannot
go faster) but is harder to programme with.<br>Another part where jdom can
take too much of your CPU is if this document has loads of other
stuffs.<br><br>Where JDOM would make a positive difference is at walking
more elaborate xml documents, which is the norm, and at manipulating them.
The expressivity of the library there is unbeatable to my
taste.<br><br>However, your requirements sound easy: 8500 such documents per
minutes?<br>JDOM does this probably ten times, multithreadedness not being
really necessary.<br><br>paul
<div>
<div></div>
<div><br><br>On 02-oct.-08, at 20:29, Praveen Gattu
wrote:<br><br></div></div>
<blockquote class="gmail_quote" style="padding-left:1ex;margin:0pt 0pt 0pt 0.8ex;border-left:rgb(204,204,204) 1px solid">
<div>
<div></div>
<div>I have a XML as below. There is always &quot;only one&quot;
employee node in the XML. So rather than iterating through the nodes, I
want to read the lastname and ssn directly, while ignoring the firstname.
What is the best way to do this in JDOM? My most important criteria is
speed. We will be processing about a 8,500 of such XML documents per
minute &nbsp;(multi-threaded of course) and need something efficient and
fast. I appreciate any help you can offer in this
regard.<br><br>&lt;response&gt;<br>&nbsp;&lt;employee&gt;<br>&nbsp;
&nbsp;&lt;firstname&gt;John&lt;/firstname&gt;<br>&nbsp;
&nbsp;&lt;lastname&gt;Smith&lt;/lastname&gt;<br>&nbsp;
&nbsp;&lt;ssn&gt;111-11-1111&lt;/ssn&gt;<br>&nbsp;&lt;/employee&gt;<br>&lt;/response&gt;<br><br>--
<br>Thanks,<br>Praveen<br><br><br><br><br>--
<br>Thanks,<br>Praveen<br></div></div>_______________________________________________<br>To
control your jdom-interest membership:<br><a href="http://www.jdom.org/mailman/options/jdom-interest/" target="_blank">http://www.jdom.org/mailman/options/jdom-interest/</a><a href="mailto:youraddr@yourhost.com" target="_blank">youraddr@yourhost.com</a><br>
</blockquote><br></blockquote></div><br><br clear="all"></div></div></div></blockquote></div></blockquote></div><br>
</div></div>