Re: jdom 1.1

Jason Hunter <[email protected]>
Newsgroups gmane.comp.java.jdom.general
Message-ID <[email protected]>
With this test code at http://jira.activemath.org/browse/OM-12 (based  
on the original report) I don't see any difference between JDOM 1.0  
and JDOM 1.1.  After upping the memory given to Java, the load of the  
25M file happens in 6 seconds under both versions.  The full walk  
takes 84 additional seconds, same on both versions.  This is with  
"1.5.0_13" on a modern MacBook Pro.

The "walking code" is slow at 84s but that's due to the test program's  
code not being optimized:

         List bookList=booksElement.getChildren("book");
         int numberOfBooks=bookList.size();
         for(int i=0;i<numberOfBooks;i++){
             Element bookElement=(Element)bookList.get(i);
             readPriceList(bookElement.getChild("price"));
         }

It would be much, MUCH faster for user code to iterate over the books  
directly rather than looking them up each time by index.  Each numeric  
index lookup requires a child-walk to find the item.  It's an n- 
squared algorithm.  That's not a big deal with 5 items but with 50,000  
items as with this test file, that's going to be slow.  It's the same  
on JDOM 1.0 and JDOM 1.1 both for me.

I rewrote the example to fix two main iterator loops and the full walk  
now takes 0.1 seconds.

-jh-

P.S.  The test code also uses == to compare Strings, which is a  
potential unrelated problem:

         List children=element.getChildren();
         if(children !=null){
             Iterator iterator=children.iterator();
             while (iterator.hasNext()) {
                 Element child = (Element) iterator.next();
                 if(child.getName()=="date_created"){
                     readDate(child);
                 }else if(child.getName()=="date_modified"){
                     readDate(child);



On Sep 3, 2008, at 2:20 AM, [email protected] wrote:

>
> Hello,
> I simplified my code and tested it again.
> You can find it here: http://jira.activemath.org/browse/OM-12
> It seems walking trough the JDOMTree generates the problem and not  
> creating the JDOMTree.
> You can can find two programs:
>
> 1.JDomReaderSaxCreateJdomTree.java
> this program only reads the xml-document and creates the JDOMTree.  
> Here seems to be no problem!
>
> 2.JDomReaderSax.java
> this program reads the xml-document,creates the JDOMTree and walks  
> trough the jdomtree. I suppose walking trough the tree generates the  
> problem in time.
>
> There are also 3 example xml files.
>
> I hope you can test the code. If there is a problem, just tell me.
>
> Thank you very much.
>
>
> ----- Original Message ---------------------------------
>
> Can someone tell me why jdom 1.1 is slower than jdom 1.0? Which  
> changes are made that causes this?
>
> And why is jdom 1.1 is more memory intensive than jdom 1.0?
>
> Thanks a lot!
_______________________________________________
To control your jdom-interest membership:
http://www.jdom.org/mailman/options/jdom-interest/[email protected]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.