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/
