Dennis Sosnoski wrote:
> I'm not much for profilers - they're okay for minor performance
> tuning, but I see performance as a matter of design rather than tuning.
>
> Looking at these results, I suspect that as Eran suggested
> XMLStreamWriter is not very performant compared to writing straight to
> an output stream/writer. That might have a lot to do with why Axiom
> output is so slow compared to dom4j and most of the document models -
> those approachs all write directly to the output stream or writer.
> Adding support for Axiom to write directly to a stream/writer could
> help a lot on this part.
>
> On the input side, it looks like a lot of time is going into
> constructing the tree within OMChildIterator. The parse time is a
> small fraction of the total time here. Part of the Axiom overhead in
> building the tree is probably due to the size of the data objects,
> which are more than twice as large as dom4j. That aside, the code may
> just be inefficient - I'll take a look and see if I spot anything
> obvious.
it should be possible to implement  AXIOM API using List (or arrays) for
children storage (or at least it was possible long time ago as AXIOM API
was defined with interfaces to allow alternative implementations of API)
- personally i found this choice to be faster for what I did in
XmlElement Infoset implementation in XPP3.

best,

alek
>
> Davanum Srinivas wrote:
>
>> Dennis, Glen,
>>
>> Need help interpreting this output from my profiler (running using
>> JDK1.5):
>> http://people.apache.org/~dims/omperf/
>>
>> This corresponds to the following command line:
>> java %JAVA_OPTS% -Xms512M -Xmx512M -cp
>> bin;lib/axiom-api-SNAPSHOT.jar;lib/axiom-impl-SNAPSHOT.jar;lib/stax-api-1.0.jar;lib/wstx-asl-2.8.2.jar
>>
>> com.sosnoski.xmlbench.XMLBench -sb axiom docs/init.xml
>> docs/xmlformatter.xml docs/soaps
>>
>> Where do you think the problem is?
>>
>> thanks,
>> dims
>>
>> On 3/30/06, Dennis Sosnoski <[EMAIL PROTECTED]> wrote:
>>  
>>
>>> And by the way, it'd be interesting to see if those JRockit figures
>>> stay
>>> as good if you cut way back on the memory (say to 16MB, or even less
>>> for
>>> the small document test). If JRockit *is* just taking advantage of the
>>> large available memory, those performance benefits are not going to
>>> apply to server applications (where no matter how big the pool, you end
>>> up running out at some point and have to start recycling).
>>>
>>>  - Dennis
>>>
>>> Dennis Sosnoski wrote:
>>>
>>>   
>>>> Nice figures from JRockit! It's interesting that basically all the
>>>> times are improved with JRockit, but the amount of improvement depends
>>>> on the library. dom4j still beats OM by a comfortable margin even
>>>> under JRockit, though (reformatted):
>>>>
>>>> Running dom4j with 10 passes on file docs/xmlformatter.xml (274920
>>>> bytes):
>>>> Build-Walk mn=18870 Build-Walk av=19241 Write mn=13767 Write av=14002
>>>>
>>>> Running dom4j with 10 passes on directory docs/soaps (30 files
>>>> totaling 19407 bytes):
>>>> Build-Walk mn=1957  Build-Walk av=2110 Write mn=2049 Write av=2225
>>>>
>>>> Running Axiom with 10 passes on file docs/xmlformatter.xml (274920
>>>> bytes):
>>>> Build-Walk mn=24581 Build-Walk av=25434 Write mn=25519 Write av=26312
>>>>
>>>> Running Axiom with 10 passes on directory docs/soaps (30 files
>>>> totaling 19407 bytes):
>>>> Build-Walk mn=7492  Build-Walk av=8534 Write mn=8156 Write av=8653
>>>>
>>>> I don't know why JRockit does so much better for some of the
>>>> libraries. More efficient memory allocations and garbage collection,
>>>> perhaps? I think dom4j has been more performance-designed than the
>>>> other libraries, so I'm not surprised that it gains relatively little
>>>> from JRockit on the large document run (build+walk is actually a
>>>> little slower, but the JRockit write time is better). But even dom4j
>>>> gains a lot on the small document test runs.
>>>>
>>>> JRockit is definitely not cooperating on the attempts at garbage
>>>> collection (I do repeated calls to System.gc() with waits in between,
>>>> which generally works on Sun and IBM JVMs) - that's why the memory
>>>> size figures are all garbage. I suspect what's going on is that the
>>>> large memory size I used for the tests (512 MB initial and maximum
>>>> memory) causes JRockit to mostly skip garbage collection and just use
>>>> the large pool available, while Sun's JVM still does the cleanup. The
>>>> libraries that generate the most garbage would gain the most from
>>>> JRockit in this case, which seems to match the results. The small
>>>> differences between the minimum times and average times for JRockit
>>>> would also go along with this.
>>>>
>>>> Incidentally, the version of the code I provided is Java 5+ only,
>>>> since it uses System.nanoTime(). It's easy to tweak this to use
>>>> System.currentTimeMillis() instead for older JVMs, but the precision
>>>> of the timing values is naturally not as good that way.
>>>>
>>>> - Dennis
>>>>
>>>> Davanum Srinivas wrote:
>>>>
>>>>     
>>>>> Dennis,
>>>>>
>>>>> what do you make of these test runs? as the name implies one is under
>>>>> JDK15 the other one using JRockit.
>>>>>
>>>>> thanks,
>>>>> dims
>>>>>
>>>>> On 3/30/06, Dennis Sosnoski <[EMAIL PROTECTED]> wrote:
>>>>>
>>>>>
>>>>>       
>>>>>> You might want to just add this on to the one I created, Glen:
>>>>>> http://issues.apache.org/jira/browse/AXIS2-533 I include JDOM in my
>>>>>> test
>>>>>> code there (using the Piccolo SAX parser), but didn't discuss the
>>>>>> JDOM
>>>>>> results in the text since dom4j is generally faster and smaller.
>>>>>>
>>>>>> - Dennis
>>>>>>
>>>>>> Davanum Srinivas wrote:
>>>>>>
>>>>>>
>>>>>>
>>>>>>         
>>>>>>> Glen,
>>>>>>>
>>>>>>> Could up please send the bigfile.xml as well? Better to do it via
>>>>>>> JIRA.
>>>>>>>
>>>>>>> thanks,
>>>>>>> dims
>>>>>>>
>>>>>>> On 3/30/06, Glen Daniels <[EMAIL PROTECTED]> wrote:
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>           
>>>>>>>> Hi folks:
>>>>>>>>
>>>>>>>> The following is a quick test which takes an XML input file,
>>>>>>>> parses it,
>>>>>>>> and walks the tree collecting all text content.  It does this
>>>>>>>> using both
>>>>>>>> JDOM (note that you'll need the StAXBuilder and StAXTextModifier
>>>>>>>> which
>>>>>>>> you can find at http://svn.woodstox.codehaus.org/utils/jdom/) and
>>>>>>>> AXIOM,
>>>>>>>> 100 times each, and then averages the timings.  The code is as
>>>>>>>> close to
>>>>>>>> identical as I could get for the two packages.
>>>>>>>>
>>>>>>>> For the file I'm working with (about 150K) I'm seeing AXIOM get an
>>>>>>>> average time around 180ms, whereas JDOM comes in at around
>>>>>>>> 77ms.  The
>>>>>>>> strings match up.  This could be better, because frankly JDOM
>>>>>>>> is way
>>>>>>>> easier to use. :)
>>>>>>>>
>>>>>>>> I think it might be time to integrate some performance testing
>>>>>>>> into our
>>>>>>>> builds, and to do some optimization on AXIOM.  I haven't yet
>>>>>>>> looked at
>>>>>>>> comparing memory footprints, but may try to do that sometime soon.
>>>>>>>>
>>>>>>>> --Glen
>>>>>>>>
>>>>>>>> --------
>>>>>>>>
>>>>>>>> import org.apache.axiom.om.OMXMLParserWrapper;
>>>>>>>> import org.apache.axiom.om.OMAbstractFactory;
>>>>>>>> import org.apache.axiom.om.OMElement;
>>>>>>>> import org.apache.axiom.om.OMNode;
>>>>>>>> import org.apache.axiom.om.impl.llom.factory.OMXMLBuilderFactory;
>>>>>>>> import org.jdom.input.StAXBuilder;
>>>>>>>> import org.jdom.Document;
>>>>>>>> import org.jdom.Element;
>>>>>>>> import org.jdom.Content;
>>>>>>>>
>>>>>>>> import javax.xml.stream.XMLStreamReader;
>>>>>>>> import javax.xml.stream.XMLInputFactory;
>>>>>>>> import java.io.FileInputStream;
>>>>>>>> import java.util.Iterator;
>>>>>>>> import java.util.List;
>>>>>>>> import java.util.Date;
>>>>>>>>
>>>>>>>> public class Test {
>>>>>>>>   static class Timer {
>>>>>>>>       long startTime;
>>>>>>>>       long stopTime;
>>>>>>>>
>>>>>>>>       public void start() {
>>>>>>>>           startTime = new Date().getTime();
>>>>>>>>       }
>>>>>>>>
>>>>>>>>       public long stop() {
>>>>>>>>           stopTime = new Date().getTime();
>>>>>>>>           return (stopTime - startTime);
>>>>>>>>       }
>>>>>>>>   }
>>>>>>>>
>>>>>>>>   // A place to save the string length for comparison purposes
>>>>>>>>   static int strLen = 0;
>>>>>>>>
>>>>>>>>   public static void main(String[] args) throws Exception {
>>>>>>>>       // Replace with any big file
>>>>>>>>       String FILENAME = "Scratch/bigfile.xml";
>>>>>>>>
>>>>>>>>       int NUM_RUNS = 100;
>>>>>>>>       long accum = 0;
>>>>>>>>
>>>>>>>>       for (int i = 0; i < NUM_RUNS; i++) {
>>>>>>>>           FileInputStream fis = new FileInputStream(FILENAME);
>>>>>>>>           XMLStreamReader parser =
>>>>>>>> XMLInputFactory.newInstance().createXMLStreamReader(fis);
>>>>>>>>           accum += runAXIOMTest(parser);
>>>>>>>>           parser.close();
>>>>>>>>           fis.close();
>>>>>>>>       }
>>>>>>>>       System.out.println("OM avg was " + (accum / NUM_RUNS) +
>>>>>>>>               " (" + strLen + ")");
>>>>>>>>
>>>>>>>>       strLen = 0;
>>>>>>>>       accum = 0;
>>>>>>>>
>>>>>>>>       for (int i = 0; i < NUM_RUNS; i++) {
>>>>>>>>           FileInputStream fis = new FileInputStream(FILENAME);
>>>>>>>>           XMLStreamReader parser =
>>>>>>>> XMLInputFactory.newInstance().createXMLStreamReader(fis);
>>>>>>>>           accum += runJDOMTest(parser);
>>>>>>>>           parser.close();
>>>>>>>>           fis.close();
>>>>>>>>       }
>>>>>>>>       System.out.println("JDOM avg was " + (accum / NUM_RUNS) +
>>>>>>>>               " (" + strLen + ")");
>>>>>>>>   }
>>>>>>>>
>>>>>>>>   public static long runAXIOMTest(XMLStreamReader parser) throws
>>>>>>>> Exception {
>>>>>>>>       Timer t = new Timer();
>>>>>>>>       t.start();
>>>>>>>>       OMXMLParserWrapper builder =
>>>>>>>> OMXMLBuilderFactory.createStAXOMBuilder(OMAbstractFactory.getOMFactory(),
>>>>>>>>
>>>>>>>>
>>>>>>>> parser);
>>>>>>>>       OMElement root = builder.getDocumentElement();
>>>>>>>>       StringBuffer buf = new StringBuffer();
>>>>>>>>       genAXIOMString(root, buf);
>>>>>>>>       long elapsed = t.stop();
>>>>>>>>       if (strLen == 0) {
>>>>>>>> //            System.out.println("[" + buf.toString() + "]");
>>>>>>>>           strLen = buf.length();
>>>>>>>>       }
>>>>>>>>       return elapsed;
>>>>>>>>   }
>>>>>>>>
>>>>>>>>   public static long runJDOMTest(XMLStreamReader parser) throws
>>>>>>>> Exception {
>>>>>>>>       Timer t = new Timer();
>>>>>>>>       t.start();
>>>>>>>>       StAXBuilder builder = new StAXBuilder();
>>>>>>>>       Document doc = builder.build(parser);
>>>>>>>>       StringBuffer buf = new StringBuffer();
>>>>>>>>       Element root = doc.getRootElement();
>>>>>>>>       genJDOMString(root, buf);
>>>>>>>>       long elapsed = t.stop();
>>>>>>>>       if (strLen == 0) {
>>>>>>>> //            System.out.println("[" + buf.toString() + "]");
>>>>>>>>           strLen = buf.length();
>>>>>>>>       }
>>>>>>>>       return elapsed;
>>>>>>>>   }
>>>>>>>>
>>>>>>>>   // These two methods do the exact same thing, one for AXIOM and
>>>>>>>> one
>>>>>>>>   // for JDOM.  Walk the tree and collect all the text.
>>>>>>>>
>>>>>>>>   public static void genAXIOMString(OMElement el, StringBuffer
>>>>>>>> buf) {
>>>>>>>>       buf.append(el.getText());
>>>>>>>>       Iterator i = el.getChildren();
>>>>>>>>       while (i.hasNext()) {
>>>>>>>>           OMNode node = (OMNode)i.next();
>>>>>>>>           if (node instanceof OMElement) {
>>>>>>>>               OMElement element = (OMElement) node;
>>>>>>>>               genAXIOMString(element, buf);
>>>>>>>>           }
>>>>>>>>       }
>>>>>>>>   }
>>>>>>>>
>>>>>>>>   public static void genJDOMString(Element el, StringBuffer buf) {
>>>>>>>>       buf.append(el.getText());
>>>>>>>>       List children = el.getChildren();
>>>>>>>>       for (Iterator i = children.iterator(); i.hasNext();) {
>>>>>>>>           Content content = (Content)i.next();
>>>>>>>>           if (content instanceof Element) {
>>>>>>>>               Element element = (Element)content;
>>>>>>>>               genJDOMString(element, buf);
>>>>>>>>           }
>>>>>>>>       }
>>>>>>>>   }
>>>>>>>> }
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>             
>>>>>>> -- 
>>>>>>> Davanum Srinivas : http://wso2.com/blogs/
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>           
>>>>> -- 
>>>>> Davanum Srinivas : http://wso2.com/blogs/
>>>>>
>>>>>
>>>>> ------------------------------------------------------------------------
>>>>>
>>>>>
>>>>> C:\perf2>java -Xms512M -Xmx512M -cp
>>>>> bin;lib/jaxp.jar;lib/Piccolo.jar;lib/jdom.jar
>>>>> com.sosnoski.xmlbench.XMLBench -sb -u com.bluecast.xml.Piccolo jdom
>>>>> docs/init.xml docs/xmlformatter.xml docs/soaps
>>>>> Running JDOM with 10 passes on file docs/init.xml (3604 bytes):
>>>>> Document has 51 elements, 82 attributes with 1215 characters of
>>>>> data, and 65 content text segments with 380 characters of text
>>>>> Original text size was 3604, output text size was 3441
>>>>> Build mn=1868   Build av=7267   Walk mn=23      Walk av=141
>>>>> Build-Walk mn=1891
>>>>> Build-Walk av=7408 Write mn=720 Write av=2053   Mod mn=125      Mod
>>>>> av=322
>>>>> Elems=51        Conts=65        Attrs=82        Text ch=380     Attr
>>>>> ch=1215
>>>>>
>>>>> Running JDOM with 10 passes on file docs/xmlformatter.xml (274920
>>>>> bytes):
>>>>> Document has 5009 elements, 1 attributes with 1 characters of data,
>>>>> and 10017 content text segments with 92468 characters of text
>>>>> Original text size was 274920, output text size was 274962
>>>>> Build mn=33318  Build av=43830  Walk mn=703     Walk av=1492
>>>>> Build-Walk mn=34021
>>>>> Build-Walk av=45322 Write mn=15636 Write av=25741 Mod mn=6765   Mod
>>>>> av=7114
>>>>> Elems=5009      Conts=10017     Attrs=1         Text ch=92468   Attr
>>>>> ch=1
>>>>>
>>>>> Running JDOM with 10 passes on directory docs/soaps (30 files
>>>>> totaling 19407 bytes):
>>>>> Document has 211 elements, 162 attributes with 2431 characters of
>>>>> data, and 72 content text segments with 452 characters of text
>>>>> Original text size was 19407, output text size was 19521
>>>>> Build mn=3975   Build av=6611   Walk mn=72      Walk av=104
>>>>> Build-Walk mn=4047
>>>>> Build-Walk av=6715 Write mn=2813 Write av=16344 Mod mn=115      Mod
>>>>> av=120
>>>>> Elems=211       Conts=72        Attrs=162       Text ch=452     Attr
>>>>> ch=2431
>>>>>
>>>>>
>>>>> C:\perf2>java -Xms512M -Xmx512M -cp
>>>>> bin;lib/jaxp.jar;lib/Piccolo.jar;lib/dom4j.jar
>>>>> com.sosnoski.xmlbench.XMLBench -sb -u com.bluecast.xml.Piccolo dom4j
>>>>> docs/init.xml docs/xmlformatter.xml docs/soaps
>>>>> Running dom4j with 10 passes on file docs/init.xml (3604 bytes):
>>>>> Document has 51 elements, 82 attributes with 1215 characters of
>>>>> data, and 65 content text segments with 380 characters of text
>>>>> Original text size was 3604, output text size was 3329
>>>>> Build mn=2390   Build av=6768   Walk mn=75      Walk av=262
>>>>> Build-Walk mn=2465
>>>>> Build-Walk av=7030 Write mn=656 Write av=2103   Mod mn=2       
>>>>> Mod av=2
>>>>> Elems=51        Conts=65        Attrs=82        Text ch=380     Attr
>>>>> ch=1215
>>>>>
>>>>> Running dom4j with 10 passes on file docs/xmlformatter.xml (274920
>>>>> bytes):
>>>>> Document has 5009 elements, 1 attributes with 1 characters of data,
>>>>> and 10020 content text segments with 92468 characters of text
>>>>> Original text size was 274920, output text size was 268945
>>>>> Build mn=16091  Build av=17048  Walk mn=2146    Walk av=2225
>>>>> Build-Walk mn=18237
>>>>> Build-Walk av=19273 Write mn=14927 Write av=15583 Mod mn=2     
>>>>> Mod av=2
>>>>> Elems=5009      Conts=10020     Attrs=1         Text ch=92468   Attr
>>>>> ch=1
>>>>>
>>>>> Running dom4j with 10 passes on directory docs/soaps (30 files
>>>>> totaling 19407 bytes):
>>>>> Document has 211 elements, 162 attributes with 2431 characters of
>>>>> data, and 72 content text segments with 452 characters of text
>>>>> Original text size was 19407, output text size was 19450
>>>>> Build mn=4975   Build av=7369   Walk mn=83      Walk av=94
>>>>> Build-Walk mn=5058
>>>>> Build-Walk av=7463 Write mn=2688 Write av=3134  Mod mn=3       
>>>>> Mod av=3
>>>>> Elems=211       Conts=72        Attrs=162       Text ch=452     Attr
>>>>> ch=2431
>>>>>
>>>>>
>>>>> C:\perf2>#java -Xms512M -Xmx512M -cp
>>>>> bin;lib/dom4j.jar;lib/stax-api-1.0.jar;lib/wstx-asl-2.8.2.jar
>>>>> com.sosnoski.xmlbench.XMLBench -sb dom4jstax docs/init.xml
>>>>> docs/xmlformatter.xml docs/soaps
>>>>> '#java' is not recognized as an internal or external command,
>>>>> operable program or batch file.
>>>>>
>>>>> C:\perf2>java -Xms512M -Xmx512M -cp
>>>>> bin;lib/xmlParserAPIs.jar;lib/xercesImpl.jar
>>>>> com.sosnoski.xmlbench.XMLBench -sb xerces2 docs/init.xml
>>>>> docs/xmlformatter.xml docs/soaps
>>>>> Running Xerces2 DOM with 10 passes on file docs/init.xml (3604
>>>>> bytes):
>>>>> Document has 51 elements, 84 attributes with 1269 characters of
>>>>> data, and 65 content text segments with 380 characters of text
>>>>> Original text size was 3604, output text size was 3263
>>>>> Build mn=3205   Build av=4825   Walk mn=59      Walk av=324
>>>>> Build-Walk mn=3264
>>>>> Build-Walk av=5149 Write mn=353 Write av=2660   Mod mn=272      Mod
>>>>> av=690
>>>>> Elems=51        Conts=65        Attrs=84        Text ch=380     Attr
>>>>> ch=1269
>>>>>
>>>>> Running Xerces2 DOM with 10 passes on file docs/xmlformatter.xml
>>>>> (274920 bytes):
>>>>> Document has 5009 elements, 1006 attributes with 104150 characters
>>>>> of data, and 10017 content text segments with 92468 characters of
>>>>> text
>>>>> Original text size was 274920, output text size was 268945
>>>>> Build mn=17272  Build av=17925  Walk mn=1463    Walk av=1528
>>>>> Build-Walk mn=18735
>>>>> Build-Walk av=19453 Write mn=13993 Write av=14586 Mod mn=10135  Mod
>>>>> av=23954
>>>>> Elems=5009      Conts=10017     Attrs=1006      Text ch=92468   Attr
>>>>> ch=104150
>>>>>
>>>>> Running Xerces2 DOM with 10 passes on directory docs/soaps (30 files
>>>>> totaling 19407 bytes):
>>>>> Document has 211 elements, 314 attributes with 7660 characters of
>>>>> data, and 72 content text segments with 452 characters of text
>>>>> Original text size was 19407, output text size was 19416
>>>>> Build mn=3696   Build av=5494   Walk mn=82      Walk av=100
>>>>> Build-Walk mn=3778
>>>>> Build-Walk av=5594 Write mn=2008 Write av=4665  Mod mn=158      Mod
>>>>> av=168
>>>>> Elems=211       Conts=72        Attrs=314       Text ch=452     Attr
>>>>> ch=7660
>>>>>
>>>>>
>>>>> C:\perf2>java -Xms512M -Xmx512M -cp
>>>>> bin;lib/axiom-api-SNAPSHOT.jar;lib/axiom-impl-SNAPSHOT.jar;lib/stax-api-1.0.jar;lib/wstx-asl-2.8.2.jar
>>>>>
>>>>> com.sosnoski.xmlbench.XMLBench -sb axiom docs/init.xml
>>>>> docs/xmlformatter.xml docs/soaps
>>>>> Running Axiom with 10 passes on file docs/init.xml (3604 bytes):
>>>>> Document has 51 elements, 82 attributes with 1215 characters of
>>>>> data, and 65 content text segments with 380 characters of text
>>>>> Original text size was 3604, output text size was 3737
>>>>> Build mn=440    Build av=3411   Walk mn=2385    Walk av=4784
>>>>> Build-Walk mn=2825
>>>>> Build-Walk av=8195 Write mn=1255 Write av=2874  Mod mn=2       
>>>>> Mod av=2
>>>>> Elems=51        Conts=65        Attrs=82        Text ch=380     Attr
>>>>> ch=1215
>>>>>
>>>>> Running Axiom with 10 passes on file docs/xmlformatter.xml (274920
>>>>> bytes):
>>>>> Document has 5009 elements, 1 attributes with 1 characters of data,
>>>>> and 10017 content text segments with 92468 characters of text
>>>>> Original text size was 274920, output text size was 269121
>>>>> Build mn=378    Build av=507    Walk mn=28728   Walk av=53739
>>>>> Build-Walk mn=29106
>>>>> Build-Walk av=54246 Write mn=21561 Write av=30035 Mod mn=2     
>>>>> Mod av=2
>>>>> Elems=5009      Conts=10017     Attrs=1         Text ch=92468   Attr
>>>>> ch=1
>>>>>
>>>>> Running Axiom with 10 passes on directory docs/soaps (30 files
>>>>> totaling 19407 bytes):
>>>>> Document has 211 elements, 162 attributes with 2431 characters of
>>>>> data, and 72 content text segments with 452 characters of text
>>>>> Original text size was 19407, output text size was 20490
>>>>> Build mn=10693  Build av=13045  Walk mn=1790    Walk av=2402
>>>>> Build-Walk mn=12483
>>>>> Build-Walk av=15447 Write mn=11645 Write av=15071 Mod mn=3     
>>>>> Mod av=3
>>>>> Elems=211       Conts=72        Attrs=162       Text ch=452     Attr
>>>>> ch=2431
>>>>>
>>>>>
>>>>> C:\perf2>java -Xms512M -Xmx512M -cp
>>>>> bin;lib/jaxp.jar;lib/Piccolo.jar;lib/jdom.jar
>>>>> com.sosnoski.xmlbench.XMLBench -sbmp4n -u com.bluecast.xml.Piccolo
>>>>> jdom docs/init.xml docs/xmlformatter.xml docs/soaps
>>>>> Running JDOM memory test with 4 passes on file docs/init.xml (3604
>>>>> bytes):
>>>>> Init mem=430528 Chg mem=417824  First sz=501664 Avg sz=18800
>>>>> Walked sz=0
>>>>> Avg+Walked sz=18800
>>>>>
>>>>> Running JDOM memory test with 4 passes on file docs/xmlformatter.xml
>>>>> (274920 bytes):
>>>>> Init mem=848392 Chg mem=1656    First sz=1422536 Avg sz=1356328
>>>>> Walked sz=0
>>>>> Avg+Walked sz=1356328
>>>>>
>>>>> Running JDOM memory test with 4 passes on directory docs/soaps (30
>>>>> files totaling 19407 bytes):
>>>>> Init mem=853352 Chg mem=2560    First sz=125624 Avg sz=53304
>>>>> Walked sz=0
>>>>> Avg+Walked sz=53304
>>>>>
>>>>>
>>>>> C:\perf2>java -Xms512M -Xmx512M -cp
>>>>> bin;lib/jaxp.jar;lib/Piccolo.jar;lib/dom4j.jar
>>>>> com.sosnoski.xmlbench.XMLBench -sbmp4n -u com.bluecast.xml.Piccolo
>>>>> dom4j docs/init.xml docs/xmlformatter.xml docs/soaps
>>>>> Running dom4j memory test with 4 passes on file docs/init.xml (3604
>>>>> bytes):
>>>>> Init mem=430536 Chg mem=427448  First sz=500032 Avg sz=15264
>>>>> Walked sz=0
>>>>> Avg+Walked sz=15264
>>>>>
>>>>> Running dom4j memory test with 4 passes on file docs/xmlformatter.xml
>>>>> (274920 bytes):
>>>>> Init mem=858024 Chg mem=3856    First sz=1032496 Avg sz=971976
>>>>> Walked sz=0
>>>>> Avg+Walked sz=971976
>>>>>
>>>>> Running dom4j memory test with 4 passes on directory docs/soaps (30
>>>>> files totaling 19407 bytes):
>>>>> Init mem=865184 Chg mem=7944    First sz=103824 Avg sz=33768
>>>>> Walked sz=0
>>>>> Avg+Walked sz=33768
>>>>>
>>>>>
>>>>> C:\perf2>#java -Xms512M -Xmx512M -cp
>>>>> bin;lib/dom4j.jar;lib/stax-api-1.0.jar;lib/wstx-asl-2.8.2.jar
>>>>> com.sosnoski.xmlbench.XMLBench -sbmp4n dom4jstax docs/init.xml
>>>>> docs/xmlformatter.xml docs/soaps
>>>>> '#java' is not recognized as an internal or external command,
>>>>> operable program or batch file.
>>>>>
>>>>> C:\perf2>java -Xms512M -Xmx512M -cp
>>>>> bin;lib/xmlParserAPIs.jar;lib/xercesImpl.jar
>>>>> com.sosnoski.xmlbench.XMLBench -sbmp4n xerces2 docs/init.xml
>>>>> docs/xmlformatter.xml docs/soaps
>>>>> Running Xerces2 DOM memory test with 4 passes on file docs/init.xml
>>>>> (3604 bytes):
>>>>> Init mem=430096 Chg mem=106328  First sz=151064 Avg sz=21824
>>>>> Walked sz=0
>>>>> Avg+Walked sz=21824
>>>>>
>>>>> Running Xerces2 DOM memory test with 4 passes on file
>>>>> docs/xmlformatter.xml (274920 bytes):
>>>>> Init mem=536464 Chg mem=0       First sz=1619904 Avg sz=1602008
>>>>> Walked sz=0
>>>>> Avg+Walked sz=1602008
>>>>>
>>>>> Running Xerces2 DOM memory test with 4 passes on directory docs/soaps
>>>>> (30 files totaling 19407 bytes):
>>>>> Init mem=539768 Chg mem=0       First sz=105336 Avg sz=78696
>>>>> Walked sz=0
>>>>> Avg+Walked sz=78696
>>>>>
>>>>>
>>>>> C:\perf2>java -Xms512M -Xmx512M -cp
>>>>> bin;lib/axiom-api-SNAPSHOT.jar;lib/axiom-impl-SNAPSHOT.jar;lib/stax-api-1.0.jar;lib/wstx-asl-2.8.2.jar
>>>>>
>>>>> com.sosnoski.xmlbench.XMLBench -sbmp4n axiom docs/init.xml
>>>>> docs/xmlformatter.xml docs/soaps
>>>>> Running Axiom memory test with 4 passes on file docs/init.xml (3604
>>>>> bytes):
>>>>> Init mem=457736 Chg mem=51760   First sz=64272  Avg sz=14992
>>>>> Walked sz=35965
>>>>> Avg+Walked sz=50957
>>>>>
>>>>> Running Axiom memory test with 4 passes on file docs/xmlformatter.xml
>>>>> (274920 bytes):
>>>>> Init mem=509536 Chg mem=928     First sz=15192  Avg sz=15261
>>>>> Walked sz=2071960
>>>>> Avg+Walked sz=2087221
>>>>>
>>>>> Running Axiom memory test with 4 passes on directory docs/soaps (30
>>>>> files totaling 19407 bytes):
>>>>> Init mem=513768 Chg mem=1640    First sz=451960 Avg sz=449760
>>>>> Walked sz=103520
>>>>> Avg+Walked sz=553280
>>>>>
>>>>>
>>>>> C:\perf2>
>>>>>
>>>>>
>>>>>
>>>>> ------------------------------------------------------------------------
>>>>>
>>>>>
>>>>> C:\perf2>java -Xms512M -Xmx512M -cp
>>>>> bin;lib/jaxp.jar;lib/Piccolo.jar;lib/jdom.jar
>>>>> com.sosnoski.xmlbench.XMLBench -sb -u com.bluecast.xml.Piccolo jdom
>>>>> docs/init.xml docs/xmlformatter.xml docs/soaps
>>>>> Running JDOM with 10 passes on file docs/init.xml (3604 bytes):
>>>>> Document has 51 elements, 82 attributes with 1215 characters of
>>>>> data, and 65 content text segments with 380 characters of text
>>>>> Original text size was 3604, output text size was 3441
>>>>> Build mn=315    Build av=340    Walk mn=9       Walk av=10
>>>>> Build-Walk mn=324
>>>>> Build-Walk av=350 Write mn=286  Write av=329    Mod mn=35       Mod
>>>>> av=36
>>>>> Elems=51        Conts=65        Attrs=82        Text ch=380     Attr
>>>>> ch=1215
>>>>>
>>>>> Running JDOM with 10 passes on file docs/xmlformatter.xml (274920
>>>>> bytes):
>>>>> Document has 5009 elements, 1 attributes with 1 characters of data,
>>>>> and 10017 content text segments with 92468 characters of text
>>>>> Original text size was 274920, output text size was 274962
>>>>> Build mn=36055  Build av=37926  Walk mn=2097    Walk av=2190
>>>>> Build-Walk mn=38152
>>>>> Build-Walk av=40116 Write mn=21226 Write av=23061 Mod mn=11950  Mod
>>>>> av=12656
>>>>> Elems=5009      Conts=10017     Attrs=1         Text ch=92468   Attr
>>>>> ch=1
>>>>>
>>>>> Running JDOM with 10 passes on directory docs/soaps (30 files
>>>>> totaling 19407 bytes):
>>>>> Document has 211 elements, 162 attributes with 2431 characters of
>>>>> data, and 72 content text segments with 452 characters of text
>>>>> Original text size was 19407, output text size was 19521
>>>>> Build mn=2727   Build av=3090   Walk mn=57      Walk av=100
>>>>> Build-Walk mn=2784
>>>>> Build-Walk av=3190 Write mn=2642 Write av=3037  Mod mn=169      Mod
>>>>> av=180
>>>>> Elems=211       Conts=72        Attrs=162       Text ch=452     Attr
>>>>> ch=2431
>>>>>
>>>>>
>>>>> C:\perf2>java -Xms512M -Xmx512M -cp
>>>>> bin;lib/jaxp.jar;lib/Piccolo.jar;lib/dom4j.jar
>>>>> com.sosnoski.xmlbench.XMLBench -sb -u com.bluecast.xml.Piccolo dom4j
>>>>> docs/init.xml docs/xmlformatter.xml docs/soaps
>>>>> Running dom4j with 10 passes on file docs/init.xml (3604 bytes):
>>>>> Document has 51 elements, 82 attributes with 1215 characters of
>>>>> data, and 65 content text segments with 380 characters of text
>>>>> Original text size was 3604, output text size was 3329
>>>>> Build mn=273    Build av=284    Walk mn=15      Walk av=15
>>>>> Build-Walk mn=288
>>>>> Build-Walk av=299 Write mn=234  Write av=266    Mod mn=2       
>>>>> Mod av=2
>>>>> Elems=51        Conts=65        Attrs=82        Text ch=380     Attr
>>>>> ch=1215
>>>>>
>>>>> Running dom4j with 10 passes on file docs/xmlformatter.xml (274920
>>>>> bytes):
>>>>> Document has 5009 elements, 1 attributes with 1 characters of data,
>>>>> and 10020 content text segments with 92468 characters of text
>>>>> Original text size was 274920, output text size was 268945
>>>>> Build mn=17597  Build av=17924  Walk mn=1273    Walk av=1317
>>>>> Build-Walk mn=18870
>>>>> Build-Walk av=19241 Write mn=13767 Write av=14002 Mod mn=2     
>>>>> Mod av=2
>>>>> Elems=5009      Conts=10020     Attrs=1         Text ch=92468   Attr
>>>>> ch=1
>>>>>
>>>>> Running dom4j with 10 passes on directory docs/soaps (30 files
>>>>> totaling 19407 bytes):
>>>>> Document has 211 elements, 162 attributes with 2431 characters of
>>>>> data, and 72 content text segments with 452 characters of text
>>>>> Original text size was 19407, output text size was 19450
>>>>> Build mn=1921   Build av=2070   Walk mn=36      Walk av=40
>>>>> Build-Walk mn=1957
>>>>> Build-Walk av=2110 Write mn=2049 Write av=2225  Mod mn=2       
>>>>> Mod av=2
>>>>> Elems=211       Conts=72        Attrs=162       Text ch=452     Attr
>>>>> ch=2431
>>>>>
>>>>>
>>>>> C:\perf2>#java -Xms512M -Xmx512M -cp
>>>>> bin;lib/dom4j.jar;lib/stax-api-1.0.jar;lib/wstx-asl-2.8.2.jar
>>>>> com.sosnoski.xmlbench.XMLBench -sb dom4jstax docs/init.xml
>>>>> docs/xmlformatter.xml docs/soaps
>>>>> '#java' is not recognized as an internal or external command,
>>>>> operable program or batch file.
>>>>>
>>>>> C:\perf2>java -Xms512M -Xmx512M -cp
>>>>> bin;lib/xmlParserAPIs.jar;lib/xercesImpl.jar
>>>>> com.sosnoski.xmlbench.XMLBench -sb xerces2 docs/init.xml
>>>>> docs/xmlformatter.xml docs/soaps
>>>>> Running Xerces2 DOM with 10 passes on file docs/init.xml (3604
>>>>> bytes):
>>>>> Document has 51 elements, 84 attributes with 1269 characters of
>>>>> data, and 65 content text segments with 380 characters of text
>>>>> Original text size was 3604, output text size was 3263
>>>>> Build mn=323    Build av=357    Walk mn=24      Walk av=24
>>>>> Build-Walk mn=347
>>>>> Build-Walk av=381 Write mn=145  Write av=150    Mod mn=29       Mod
>>>>> av=31
>>>>> Elems=51        Conts=65        Attrs=84        Text ch=380     Attr
>>>>> ch=1269
>>>>>
>>>>> Running Xerces2 DOM with 10 passes on file docs/xmlformatter.xml
>>>>> (274920 bytes):
>>>>> Document has 5009 elements, 1006 attributes with 104150 characters
>>>>> of data, and 10017 content text segments with 92468 characters of
>>>>> text
>>>>> Original text size was 274920, output text size was 268945
>>>>> Build mn=18384  Build av=18824  Walk mn=1239    Walk av=1336
>>>>> Build-Walk mn=19623
>>>>> Build-Walk av=20160 Write mn=11704 Write av=11998 Mod mn=11572  Mod
>>>>> av=12464
>>>>> Elems=5009      Conts=10017     Attrs=1006      Text ch=92468   Attr
>>>>> ch=104150
>>>>>
>>>>> Running Xerces2 DOM with 10 passes on directory docs/soaps (30 files
>>>>> totaling 19407 bytes):
>>>>> Document has 211 elements, 314 attributes with 7660 characters of
>>>>> data, and 72 content text segments with 452 characters of text
>>>>> Original text size was 19407, output text size was 19416
>>>>> Build mn=2053   Build av=2201   Walk mn=69      Walk av=81
>>>>> Build-Walk mn=2122
>>>>> Build-Walk av=2282 Write mn=1306 Write av=1439  Mod mn=155      Mod
>>>>> av=161
>>>>> Elems=211       Conts=72        Attrs=314       Text ch=452     Attr
>>>>> ch=7660
>>>>>
>>>>>
>>>>> C:\perf2>java -Xms512M -Xmx512M -cp
>>>>> bin;lib/axiom-api-SNAPSHOT.jar;lib/axiom-impl-SNAPSHOT.jar;lib/stax-api-1.0.jar;lib/wstx-asl-2.8.2.jar
>>>>>
>>>>> com.sosnoski.xmlbench.XMLBench -sb axiom docs/init.xml
>>>>> docs/xmlformatter.xml docs/soaps
>>>>> Running Axiom with 10 passes on file docs/init.xml (3604 bytes):
>>>>> Document has 51 elements, 82 attributes with 1215 characters of
>>>>> data, and 65 content text segments with 380 characters of text
>>>>> Original text size was 3604, output text size was 3737
>>>>> Build mn=152    Build av=256    Walk mn=275     Walk av=303
>>>>> Build-Walk mn=427
>>>>> Build-Walk av=559 Write mn=566  Write av=663    Mod mn=2       
>>>>> Mod av=2
>>>>> Elems=51        Conts=65        Attrs=82        Text ch=380     Attr
>>>>> ch=1215
>>>>>
>>>>> Running Axiom with 10 passes on file docs/xmlformatter.xml (274920
>>>>> bytes):
>>>>> Document has 5009 elements, 1 attributes with 1 characters of data,
>>>>> and 10017 content text segments with 92468 characters of text
>>>>> Original text size was 274920, output text size was 269121
>>>>> Build mn=158    Build av=178    Walk mn=24423   Walk av=25256
>>>>> Build-Walk mn=24581
>>>>> Build-Walk av=25434 Write mn=25519 Write av=26312 Mod mn=2     
>>>>> Mod av=2
>>>>> Elems=5009      Conts=10017     Attrs=1         Text ch=92468   Attr
>>>>> ch=1
>>>>>
>>>>> Running Axiom with 10 passes on directory docs/soaps (30 files
>>>>> totaling 19407 bytes):
>>>>> Document has 211 elements, 162 attributes with 2431 characters of
>>>>> data, and 72 content text segments with 452 characters of text
>>>>> Original text size was 19407, output text size was 20490
>>>>> Build mn=6136   Build av=6866   Walk mn=1356    Walk av=1668
>>>>> Build-Walk mn=7492
>>>>> Build-Walk av=8534 Write mn=8156 Write av=8653  Mod mn=2       
>>>>> Mod av=2
>>>>> Elems=211       Conts=72        Attrs=162       Text ch=452     Attr
>>>>> ch=2431
>>>>>
>>>>>
>>>>> C:\perf2>java -Xms512M -Xmx512M -cp
>>>>> bin;lib/jaxp.jar;lib/Piccolo.jar;lib/jdom.jar
>>>>> com.sosnoski.xmlbench.XMLBench -sbmp4n -u com.bluecast.xml.Piccolo
>>>>> jdom docs/init.xml docs/xmlformatter.xml docs/soaps
>>>>> Running JDOM memory test with 4 passes on file docs/init.xml (3604
>>>>> bytes):
>>>>> Init mem=516152 Chg mem=533480  First sz=700392 Avg sz=-9522
>>>>> Walked sz=-19786
>>>>> Avg+Walked sz=-29308
>>>>>
>>>>> Running JDOM memory test with 4 passes on file docs/xmlformatter.xml
>>>>> (274920 bytes):
>>>>> Init mem=1051736 Chg mem=1512   First sz=1479400 Avg sz=6157834
>>>>> Walked sz=-6157954
>>>>> Avg+Walked sz=-120
>>>>>
>>>>> Running JDOM memory test with 4 passes on directory docs/soaps (30
>>>>> files totaling 19407 bytes):
>>>>> Init mem=1051656 Chg mem=6816   First sz=293616 Avg sz=5202
>>>>> Walked sz=-61760
>>>>> Avg+Walked sz=-56558
>>>>>
>>>>>
>>>>> C:\perf2>java -Xms512M -Xmx512M -cp
>>>>> bin;lib/jaxp.jar;lib/Piccolo.jar;lib/dom4j.jar
>>>>> com.sosnoski.xmlbench.XMLBench -sbmp4n -u com.bluecast.xml.Piccolo
>>>>> dom4j docs/init.xml docs/xmlformatter.xml docs/soaps
>>>>> Running dom4j memory test with 4 passes on file docs/init.xml (3604
>>>>> bytes):
>>>>> Init mem=516160 Chg mem=531680  First sz=687664 Avg sz=-13730
>>>>> Walked sz=-15917
>>>>> Avg+Walked sz=-29647
>>>>>
>>>>> Running dom4j memory test with 4 passes on file docs/xmlformatter.xml
>>>>> (274920 bytes):
>>>>> Init mem=1041864 Chg mem=7344   First sz=1168264 Avg sz=1105069
>>>>> Walked sz=-1139941
>>>>> Avg+Walked sz=-34872
>>>>>
>>>>> Running dom4j memory test with 4 passes on directory docs/soaps (30
>>>>> files totaling 19407 bytes):
>>>>> Init mem=1050672 Chg mem=13352  First sz=178392 Avg sz=13842
>>>>> Walked sz=-37320
>>>>> Avg+Walked sz=-23478
>>>>>
>>>>>
>>>>> C:\perf2>#java -Xms512M -Xmx512M -cp
>>>>> bin;lib/dom4j.jar;lib/stax-api-1.0.jar;lib/wstx-asl-2.8.2.jar
>>>>> com.sosnoski.xmlbench.XMLBench -sbmp4n dom4jstax docs/init.xml
>>>>> docs/xmlformatter.xml docs/soaps
>>>>> '#java' is not recognized as an internal or external command,
>>>>> operable program or batch file.
>>>>>
>>>>> C:\perf2>java -Xms512M -Xmx512M -cp
>>>>> bin;lib/xmlParserAPIs.jar;lib/xercesImpl.jar
>>>>> com.sosnoski.xmlbench.XMLBench -sbmp4n xerces2 docs/init.xml
>>>>> docs/xmlformatter.xml docs/soaps
>>>>> Running Xerces2 DOM memory test with 4 passes on file docs/init.xml
>>>>> (3604 bytes):
>>>>> Init mem=515616 Chg mem=230808  First sz=400208 Avg sz=-24584
>>>>> Walked sz=-29778
>>>>> Avg+Walked sz=-54362
>>>>>
>>>>> Running Xerces2 DOM memory test with 4 passes on file
>>>>> docs/xmlformatter.xml (274920 bytes):
>>>>> Init mem=728464 Chg mem=6448    First sz=1682440 Avg sz=1657152
>>>>> Walked sz=-2211264
>>>>> Avg+Walked sz=-554112
>>>>>
>>>>> Running Xerces2 DOM memory test with 4 passes on directory docs/soaps
>>>>> (30 files totaling 19407 bytes):
>>>>> Init mem=733768 Chg mem=3088    First sz=141112 Avg sz=72626
>>>>> Walked sz=-87696
>>>>> Avg+Walked sz=-15070
>>>>>
>>>>>
>>>>> C:\perf2>java -Xms512M -Xmx512M -cp
>>>>> bin;lib/axiom-api-SNAPSHOT.jar;lib/axiom-impl-SNAPSHOT.jar;lib/stax-api-1.0.jar;lib/wstx-asl-2.8.2.jar
>>>>>
>>>>> com.sosnoski.xmlbench.XMLBench -sbmp4n axiom docs/init.xml
>>>>> docs/xmlformatter.xml docs/soaps
>>>>> Running Axiom memory test with 4 passes on file docs/init.xml (3604
>>>>> bytes):
>>>>> Init mem=576560 Chg mem=67832   First sz=166328 Avg sz=-19077
>>>>> Walked sz=-13754
>>>>> Avg+Walked sz=-32831
>>>>>
>>>>> Running Axiom memory test with 4 passes on file docs/xmlformatter.xml
>>>>> (274920 bytes):
>>>>> Init mem=644584 Chg mem=1272    First sz=17320  Avg sz=14218
>>>>> Walked sz=-16976
>>>>> Avg+Walked sz=-2758
>>>>>
>>>>> Running Axiom memory test with 4 passes on directory docs/soaps (30
>>>>> files totaling 19407 bytes):
>>>>> Init mem=649512 Chg mem=2552    First sz=450704 Avg sz=473432
>>>>> Walked sz=-615925
>>>>> Avg+Walked sz=-142493
>>>>>
>>>>>
>>>>> C:\perf2>
>>>>>
>>>>>
>>>>>       
>>
>>
>> -- 
>> Davanum Srinivas : http://wso2.com/blogs/
>>
>>  
>>


-- 
The best way to predict the future is to invent it - Alan Kay

Reply via email to