<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>