<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=us-ascii">
<META content="MSHTML 6.00.6001.18099" name=GENERATOR></HEAD>
<BODY>
<DIV dir=ltr align=left><SPAN class=684192808-03102008><FONT face=Arial 
color=#0000ff size=2>The point of my message is that if it's taking 1 second to 
get the file over the network and 1msec to process the file, then improving the 
processing speed to 0.9 msec is a waste of effort. It's like tuning your car's 
engine and leaving the handbrake on. You need to understand the overall system 
performance (and the extent to which it falls short of the performance 
requirements) before you decide which parts of it to tune.</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=684192808-03102008><FONT face=Arial 
color=#0000ff size=2></FONT></SPAN>&nbsp;</DIV>
<DIV dir=ltr align=left><SPAN class=684192808-03102008><FONT face=Arial 
color=#0000ff size=2>Michael Kay</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=684192808-03102008><FONT face=Arial 
color=#0000ff size=2><A 
href="http://www.saxonica.com/">http://www.saxonica.com/</A></FONT></SPAN></DIV><BR>
<BLOCKQUOTE dir=ltr 
style="PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #0000ff 2px solid; MARGIN-RIGHT: 0px">
  <DIV class=OutlookMessageHeader lang=en-us dir=ltr align=left>
  <HR tabIndex=-1>
  <FONT face=Tahoma size=2><B>From:</B> Praveen Gattu [mailto:pgattu@gmail.com] 
  <BR><B>Sent:</B> 03 October 2008 01:32<BR><B>To:</B> Michael Kay<BR><B>Cc:</B> 
  Paul Libbrecht; jdom-interest@jdom.org<BR><B>Subject:</B> Re: [jdom-interest] 
  Re: Reading XML with JDOM<BR></FONT><BR></DIV>
  <DIV></DIV>
  <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'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'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="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">
    <DIV>
    <DIV dir=ltr align=left><SPAN><FONT face=Arial color=#0000ff size=2>You'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't know what 
    JDOM'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 "only one" 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></BLOCKQUOTE></BODY></HTML>