Hmmm, let me dig into that. thanks for the tip. -- dims
On 3/31/06, Dennis Sosnoski <[EMAIL PROTECTED]> wrote: > After looking into the code I don't understand the profiler results at > all. The org.apache.axiom.om.impl.traverse.*OMChildrenIterator*.*next*() > is where 32% of the total time is spent, if I'm reading this correctly, > but this consists of almost nothing except a call to > org.apache.axiom.om.OMNode.getNextOMSibling() - and the latter method > doesn't even show in the results, even though the parser methods called > by the implementation of getNextOMSibling() *are* shown. Was there > something weird about the settings you used to generate the profile, dims? > > - Dennis > > 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. > > > > - Dennis > > > > 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/ > >> > >> > >> > > > -- Davanum Srinivas : http://wso2.com/blogs/
