You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xmlbeans.apache.org by ce...@apache.org on 2005/08/20 01:32:22 UTC
svn commit: r233577 [2/2] - in /xmlbeans/trunk/test/perf: ./ bin/
src/org/apache/xmlbeans/test/performance/jaxb/
src/org/apache/xmlbeans/test/performance/svn/
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/svn/CursorWalkSVN.java
URL: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/svn/CursorWalkSVN.java?rev=233577&view=auto
==============================================================================
--- xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/svn/CursorWalkSVN.java (added)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/svn/CursorWalkSVN.java Fri Aug 19 16:32:14 2005
@@ -0,0 +1,108 @@
+/* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.xmlbeans.test.performance.svn;
+
+import org.apache.xmlbeans.XmlCursor;
+import org.apache.xmlbeans.XmlObject;
+import org.apache.xmlbeans.test.performance.utils.Constants;
+import org.apache.xmlbeans.test.performance.utils.PerfUtil;
+
+import java.io.CharArrayReader;
+
+public class CursorWalkSVN
+{
+
+ public static void main(String[] args) throws Exception
+ {
+
+ final int iterations = Constants.CURSOR_ITERATIONS;
+ String flavor;
+
+ if(args.length == 0)
+ flavor = "deep-attributes";
+ else
+ flavor = args[0];
+
+
+ CursorWalkSVN test = new CursorWalkSVN();
+ PerfUtil util = new PerfUtil();
+ long cputime;
+ int hash = 0;
+
+ // get the xml cursor
+ char[] chars = util.createXmlData(flavor, Constants.XML_SIZE);
+ //System.out.println("chars="+chars.length);
+ XmlObject doc = XmlObject.Factory.parse(new CharArrayReader(chars));
+ XmlCursor cursor = doc.newCursor();
+
+ // run the gc?
+
+ // warm up the vm
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run(cursor);
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // run it again for the real measurement
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run(cursor);
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // print the results
+ // Class.getSimpleName() is only provided in jdk1.5, so have to trim package name off test name for logging to support 1.4
+ System.out.print(Constants.DELIM+test.getClass().getName().substring(test.getClass().getName().lastIndexOf('.')+1)+" flavor="+flavor+" ");
+ System.out.print("hash "+hash+" ");
+ System.out.print("time " + cputime+" ");
+ System.out.print("time/it " + ((double)cputime)/((double)iterations) + "\n");
+ }
+
+ private int run(XmlCursor cursor) throws Exception
+ {
+ int iHash = 0;
+
+ while(cursor.hasNextToken()){
+
+ // walk the doc with the cursor, computing the hash
+ if(cursor.isStart())
+ {
+ iHash += 17; // add a prime number
+ }
+ else if(cursor.isContainer())
+ {
+ iHash += cursor.getTextValue().length();
+ }
+ else if(cursor.isAttr())
+ {
+ iHash += cursor.getTextValue().length();
+ }
+ else if(cursor.isText())
+ {
+ iHash += cursor.getChars().length();
+ }
+
+ cursor.toNextToken();
+
+ }
+
+ // reset the cursor to the beginning
+ cursor.toStartDoc();
+
+ // return the hash value
+ return iHash;
+ }
+}
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/svn/DomWalkNLSVN.java
URL: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/svn/DomWalkNLSVN.java?rev=233577&view=auto
==============================================================================
--- xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/svn/DomWalkNLSVN.java (added)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/svn/DomWalkNLSVN.java Fri Aug 19 16:32:14 2005
@@ -0,0 +1,96 @@
+/* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.xmlbeans.test.performance.svn;
+
+import java.io.CharArrayReader;
+
+import org.apache.xmlbeans.XmlObject;
+import org.apache.xmlbeans.test.performance.utils.Constants;
+import org.apache.xmlbeans.test.performance.utils.PerfUtil;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+public class DomWalkNLSVN
+{
+
+ public static void main(String[] args) throws Exception
+ {
+
+ final int iterations = Constants.CURSOR_ITERATIONS;
+ String flavor;
+
+ if(args.length == 0)
+ flavor = "deep-attributes";
+ else
+ flavor = args[0];
+
+ DomWalkNLSVN test = new DomWalkNLSVN();
+ PerfUtil util = new PerfUtil();
+ long cputime;
+ int hash = 0;
+
+ // get the xml cursor
+ char[] chars = util.createXmlData(flavor, Constants.XML_SIZE);
+ XmlObject doc = XmlObject.Factory.parse(new CharArrayReader(chars));
+ Node node ;
+
+ // warm up the vm
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ node = doc.getDomNode();
+ hash += test.run(node);
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // run it again for the real measurement
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ node = doc.getDomNode();
+ hash += test.run(node);
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // print the results
+ // Class.getSimpleName() is only provided in jdk1.5, so have to trim package name off test name for logging to support 1.4
+ System.out.print(Constants.DELIM+test.getClass().getName().substring(test.getClass().getName().lastIndexOf('.')+1)+" flavor="+flavor+" ");
+ System.out.print("hash "+hash+" ");
+ System.out.print("time "+cputime+"\n");
+ }
+
+ private int run(Node p_node)
+ {
+ int result = 0;
+ short type = p_node.getNodeType();
+
+ if(type == Node.ATTRIBUTE_NODE ||
+ type == Node.CDATA_SECTION_NODE ||
+ type == Node.TEXT_NODE)
+ {
+ result = p_node.getNodeValue().length();
+ }
+ else
+ {
+ result = p_node.getNodeName().length();
+ }
+
+ NodeList children = p_node.getChildNodes();
+ for(int i=0; i<children.getLength(); i++)
+ {
+ result += run(children.item(i));
+ }
+
+ return result;
+ }
+}
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/svn/DomWalkSVN.java
URL: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/svn/DomWalkSVN.java?rev=233577&view=auto
==============================================================================
--- xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/svn/DomWalkSVN.java (added)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/svn/DomWalkSVN.java Fri Aug 19 16:32:14 2005
@@ -0,0 +1,95 @@
+/* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.xmlbeans.test.performance.svn;
+
+import java.io.CharArrayReader;
+
+import org.apache.xmlbeans.XmlObject;
+import org.apache.xmlbeans.test.performance.utils.Constants;
+import org.apache.xmlbeans.test.performance.utils.PerfUtil;
+import org.w3c.dom.Node;
+
+public class DomWalkSVN
+{
+
+ public static void main(String[] args) throws Exception
+ {
+
+ final int iterations = Constants.CURSOR_ITERATIONS;
+ String flavor;
+
+ if(args.length == 0)
+ flavor = "deep-attributes";
+ else
+ flavor = args[0];
+
+ DomWalkSVN test = new DomWalkSVN();
+ PerfUtil util = new PerfUtil();
+ long cputime;
+ int hash = 0;
+
+ // get the xml cursor
+ char[] chars = util.createXmlData(flavor, Constants.XML_SIZE);
+ XmlObject doc = XmlObject.Factory.parse(new CharArrayReader(chars));
+ Node node;
+
+ // warm up the vm
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ node = doc.getDomNode();
+ hash += test.run(node);
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // run it again for the real measurement
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ node = doc.getDomNode();
+ hash += test.run(node);
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // print the results
+ // Class.getSimpleName() is only provided in jdk1.5, so have to trim package name off test name for logging to support 1.4
+ System.out.print(Constants.DELIM+test.getClass().getName().substring(test.getClass().getName().lastIndexOf('.')+1)+" flavor="+flavor+" ");
+ System.out.print("hash "+hash+" ");
+ System.out.print("time "+cputime+"\n");
+ }
+
+ private int run(Node p_node)
+ {
+ int result = 0;
+ short type = p_node.getNodeType();
+
+ if(type == Node.ATTRIBUTE_NODE ||
+ type == Node.CDATA_SECTION_NODE ||
+ type == Node.TEXT_NODE)
+ {
+ result = p_node.getNodeValue().length();
+ }
+ else
+ {
+ result = p_node.getNodeName().length();
+ }
+
+ Node child = p_node.getFirstChild();
+ while(null != child)
+ {
+ result += run(child);
+ child = child.getNextSibling();
+ }
+ return result;
+ }
+}
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/svn/MaxMemUntypedBisLoadSVN.java
URL: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/svn/MaxMemUntypedBisLoadSVN.java?rev=233577&view=auto
==============================================================================
--- xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/svn/MaxMemUntypedBisLoadSVN.java (added)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/svn/MaxMemUntypedBisLoadSVN.java Fri Aug 19 16:32:14 2005
@@ -0,0 +1,78 @@
+/* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.xmlbeans.test.performance.svn;
+
+import java.io.BufferedInputStream;
+import java.io.ByteArrayInputStream;
+
+import org.apache.xmlbeans.XmlCursor;
+import org.apache.xmlbeans.XmlObject;
+import org.apache.xmlbeans.test.performance.utils.Constants;
+import org.apache.xmlbeans.test.performance.utils.PerfUtil;
+
+
+public class MaxMemUntypedBisLoadSVN
+{
+
+ public static void main(String[] args) throws Exception
+ {
+ int interval = Constants.MEM_INTERVAL;
+ long memory = Runtime.getRuntime().maxMemory();
+ int size = 0;
+ int hash = 0;
+ String flavor = null;
+
+ if(args.length == 0)
+ flavor = "deep-attributes";
+ else
+ flavor = args[0];
+
+ MaxMemUntypedBisLoadSVN test = new MaxMemUntypedBisLoadSVN();
+ PerfUtil util = new PerfUtil();
+
+ try
+ {
+ System.gc();
+ // infinite for loop - go until get oom
+ for(int i=1; true; i++)
+ {
+ System.gc();
+ byte[] bytes = util.createXmlDataBytes(flavor,Constants.MEM_INITIALSIZE+(interval*i));
+ hash += test.run(new BufferedInputStream(new ByteArrayInputStream(bytes) ));
+ size = bytes.length;
+ }
+ }
+ catch (OutOfMemoryError oom)
+ {
+ System.gc();
+ // Class.getSimpleName() is only provided in jdk1.5, so have to trim package name off test name for logging to support 1.4
+ System.out.print(Constants.DELIM+test.getClass().getName().substring(test.getClass().getName().lastIndexOf('.')+1)+" flavor="+flavor+" ");
+ System.out.print("hash "+hash+" ");
+ System.out.print("memory "+memory+" ");
+ System.out.println("size="+size);
+ }
+ }
+
+ private int run(BufferedInputStream p_bis) throws Exception
+ {
+ // load the buffered input stream
+ XmlObject xobj = XmlObject.Factory.parse(p_bis);
+
+ // calculate and return the hash value
+ XmlCursor cursor = xobj.newCursor();
+ cursor.toFirstContentToken();
+ return cursor.getName().toString().length() * 17;
+ }
+}
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/svn/NPrimTopDownSVN.java
URL: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/svn/NPrimTopDownSVN.java?rev=233577&view=auto
==============================================================================
--- xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/svn/NPrimTopDownSVN.java (added)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/svn/NPrimTopDownSVN.java Fri Aug 19 16:32:14 2005
@@ -0,0 +1,79 @@
+/* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.xmlbeans.test.performance.svn;
+
+import org.apache.xmlbeans.test.performance.utils.Constants;
+import org.openuri.nonprimitives.NonPrimitivesDocument;
+import org.openuri.nonprimitives.Numerics;
+import org.openuri.nonprimitives.NonPrimitivesDocument.NonPrimitives;
+
+public class NPrimTopDownSVN
+{
+ public static void main(String[] args) throws Exception
+ {
+
+ NPrimTopDownSVN test = new NPrimTopDownSVN();
+ int iterations = Constants.ITERATIONS;
+ long cputime;
+ int hash = 0;
+
+ // warm up the vm
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run();
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // run it again for the real measurement
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run();
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // print the results
+ // Class.getSimpleName() is only provided in jdk1.5, so have to trim package name off test name for logging to support 1.4
+ System.out.print(Constants.DELIM+test.getClass().getName().substring(test.getClass().getName().lastIndexOf('.')+1)+" ");
+ System.out.print("hash "+hash+" ");
+ System.out.print("time "+cputime+"\n");
+ }
+
+ private int run() throws Exception
+ {
+ // create the doc
+ NonPrimitivesDocument doc = NonPrimitivesDocument.Factory.newInstance();
+ NonPrimitives nprim = doc.addNewNonPrimitives();
+
+ // create and initialize numeric elements
+ for(int i=0; i<Constants.PO_NUM_LINEITEMS; i++)
+ {
+ Numerics numerics = nprim.addNewNumerics();
+ numerics.setMydecimal(Constants.myBigDecimal);
+ numerics.setMyinteger(Constants.myPosBigInteger);
+ numerics.setMyneginteger(Constants.myNegBigInteger);
+ numerics.setMynonneginteger(Constants.myPosBigInteger);
+ numerics.setMynonposinteger(Constants.myNegBigInteger);
+ numerics.setMyposinteger(Constants.myPosBigInteger);
+ }
+
+ // set the date and string fields
+ nprim.setMydate(Constants.myDate);
+ nprim.setMystring(Constants.myString);
+
+ // calculate a hash to return
+ int hash = ( nprim.getNumericsArray().length ) * 17;
+ return hash;
+ }
+}
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/svn/POGetCustNameSVN.java
URL: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/svn/POGetCustNameSVN.java?rev=233577&view=auto
==============================================================================
--- xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/svn/POGetCustNameSVN.java (added)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/svn/POGetCustNameSVN.java Fri Aug 19 16:32:14 2005
@@ -0,0 +1,100 @@
+/* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.xmlbeans.test.performance.svn;
+
+import java.io.CharArrayReader;
+
+import org.apache.xmlbeans.test.performance.utils.PerfUtil;
+import org.apache.xmlbeans.test.performance.utils.Constants;
+
+// from svn-generated schema jar(s)
+import org.openuri.easypo.PurchaseOrderDocument;
+import org.openuri.easypo.PurchaseOrderDocument.PurchaseOrder;
+import org.openuri.easypo.Customer;
+
+
+public class POGetCustNameSVN
+{
+ public static void main(String[] args) throws Exception
+ {
+
+ final int iterations = Constants.GET_SET_ITERATIONS;
+ String filename;
+
+ // the xml instance can be specified by either a number
+ // or the name of a file located in the test folder
+ // see Constants.java
+ if(args.length == 0){
+ filename = Constants.PO_INSTANCE_1;
+ }
+ else if(args[0].length() > 1){
+ filename = Constants.XSD_DIR+Constants.P+args[0];
+ }
+ else{
+ switch( Integer.parseInt(args[0]) )
+ {
+ case 1: filename = Constants.PO_INSTANCE_1; break;
+ case 2: filename = Constants.PO_INSTANCE_2; break;
+ case 3: filename = Constants.PO_INSTANCE_3; break;
+ case 4: filename = Constants.PO_INSTANCE_4; break;
+ case 5: filename = Constants.PO_INSTANCE_5; break;
+ case 6: filename = Constants.PO_INSTANCE_6; break;
+ case 7: filename = Constants.PO_INSTANCE_7; break;
+ default: filename = Constants.PO_INSTANCE_1; break;
+ }
+ }
+
+ POGetCustNameSVN test = new POGetCustNameSVN();
+ PerfUtil util = new PerfUtil();
+ long cputime;
+ int hash = 0;
+
+
+ // get the xmlinstance
+ char[] chars = util.fileToChars(filename);
+
+ // parse the instance
+ PurchaseOrderDocument podoc =
+ PurchaseOrderDocument.Factory.parse(new CharArrayReader(chars));
+ PurchaseOrder po = podoc.getPurchaseOrder();
+ Customer customer = po.getCustomer();
+
+ // warm up the vm
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run(customer);
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // run it again for the real measurement
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run(customer);
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // print the results
+ // Class.getSimpleName() is only provided in jdk1.5, so have to trim package name off test name for logging to support 1.4
+ System.out.print(Constants.DELIM+test.getClass().getName().substring(test.getClass().getName().lastIndexOf('.')+1)+" filesize="+chars.length+" ");
+ System.out.print("hash "+hash+" ");
+ System.out.print("time "+cputime+"\n");
+ }
+
+ private int run(Customer p_customer) throws Exception
+ {
+ return p_customer.getName().length() * 17;
+ }
+
+}
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/svn/POGetSetGetCustNameSVN.java
URL: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/svn/POGetSetGetCustNameSVN.java?rev=233577&view=auto
==============================================================================
--- xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/svn/POGetSetGetCustNameSVN.java (added)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/svn/POGetSetGetCustNameSVN.java Fri Aug 19 16:32:14 2005
@@ -0,0 +1,116 @@
+/* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.xmlbeans.test.performance.svn;
+
+import java.io.CharArrayReader;
+
+import org.apache.xmlbeans.test.performance.utils.PerfUtil;
+import org.apache.xmlbeans.test.performance.utils.Constants;
+
+// from svn-generated schema jar(s)
+import org.openuri.easypo.PurchaseOrderDocument;
+import org.openuri.easypo.PurchaseOrderDocument.PurchaseOrder;
+import org.openuri.easypo.Customer;
+
+
+public class POGetSetGetCustNameSVN
+{
+ public static void main(String[] args) throws Exception
+ {
+
+ final int iterations = Constants.GET_SET_ITERATIONS;
+ String filename;
+ int stringSize = 0;
+ String stringToSet = "";
+
+ // the xml instance can be specified by either a number
+ // or the name of a file located in the test folder
+ // see Constants.java
+ if(args.length == 0){
+ filename = Constants.PO_INSTANCE_1;
+ }
+ else if(args[0].length() > 1){
+ filename = Constants.XSD_DIR+Constants.P+args[0];
+ }
+ else{
+ switch( Integer.parseInt(args[0]) )
+ {
+ case 1: filename = Constants.PO_INSTANCE_1; break;
+ case 2: filename = Constants.PO_INSTANCE_2; break;
+ case 3: filename = Constants.PO_INSTANCE_3; break;
+ case 4: filename = Constants.PO_INSTANCE_4; break;
+ case 5: filename = Constants.PO_INSTANCE_5; break;
+ case 6: filename = Constants.PO_INSTANCE_6; break;
+ case 7: filename = Constants.PO_INSTANCE_7; break;
+ default: filename = Constants.PO_INSTANCE_1; break;
+ }
+ }
+
+ // the size of the string used is the second arg or default if not specified
+ if(args.length < 2)
+ {
+ stringSize = Constants.STRING_SIZE;
+ }
+ else
+ {
+ stringSize = Integer.parseInt(args[1]);
+ }
+
+ POGetSetGetCustNameSVN test = new POGetSetGetCustNameSVN();
+ PerfUtil util = new PerfUtil();
+ long cputime;
+ int hash = 0;
+
+ // create the string to be used for the set
+ stringToSet = util.createString(stringSize);
+
+ // get the xmlinstance
+ char[] chars = util.fileToChars(filename);
+
+ // parse the instance
+ PurchaseOrderDocument podoc =
+ PurchaseOrderDocument.Factory.parse(new CharArrayReader(chars));
+ PurchaseOrder po = podoc.getPurchaseOrder();
+ Customer customer = po.getCustomer();
+
+ // warm up the vm
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run(customer, stringToSet);
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // run it again for the real measurement
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run(customer, stringToSet);
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // print the results
+ // Class.getSimpleName() is only provided in jdk1.5, so have to trim package name off test name for logging to support 1.4
+ System.out.print(Constants.DELIM+test.getClass().getName().substring(test.getClass().getName().lastIndexOf('.')+1)+" filesize="+chars.length+" ");
+ System.out.print("hash "+hash+" ");
+ System.out.print("time "+cputime+"\n");
+ }
+
+ private int run(Customer p_customer, String p_setval) throws Exception
+ {
+ p_customer.getName();
+ p_customer.setName(p_setval);
+ return p_customer.getName().length() * 17;
+ }
+
+}
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/svn/POQueryLineItemsSVN.java
URL: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/svn/POQueryLineItemsSVN.java?rev=233577&view=auto
==============================================================================
--- xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/svn/POQueryLineItemsSVN.java (added)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/svn/POQueryLineItemsSVN.java Fri Aug 19 16:32:14 2005
@@ -0,0 +1,101 @@
+/* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.xmlbeans.test.performance.svn;
+
+//import java.io.File;
+import java.io.CharArrayReader;
+
+import org.apache.xmlbeans.test.performance.utils.Constants;
+import org.apache.xmlbeans.test.performance.utils.PerfUtil;
+//import org.openuri.easypo.LineItem;
+import org.openuri.easypo.PurchaseOrderDocument;
+//import org.openuri.easypo.Shipper;
+
+import org.apache.xmlbeans.XmlObject;
+
+
+public class POQueryLineItemsSVN
+{
+ public static void main(String[] args) throws Exception
+ {
+ final int iterations = Constants.ITERATIONS;
+ String filename;
+
+ if(args.length == 0){
+ filename = Constants.PO_INSTANCE_1;
+ }
+ else if(args[0].length() > 1){
+ filename = Constants.XSD_DIR+Constants.P+args[0];
+ }
+ else{
+ switch( Integer.parseInt(args[0]) )
+ {
+ case 1: filename = Constants.PO_INSTANCE_1; break;
+ case 2: filename = Constants.PO_INSTANCE_2; break;
+ case 3: filename = Constants.PO_INSTANCE_3; break;
+ case 4: filename = Constants.PO_INSTANCE_4; break;
+ case 5: filename = Constants.PO_INSTANCE_5; break;
+ case 6: filename = Constants.PO_INSTANCE_6; break;
+ case 7: filename = Constants.PO_INSTANCE_7; break;
+ default: filename = Constants.PO_INSTANCE_1; break;
+ }
+ }
+
+ POQueryLineItemsSVN test = new POQueryLineItemsSVN();
+ PerfUtil util = new PerfUtil();
+ long cputime;
+ int hash = 0;
+
+ // get the xmlinstance
+ char[] chars = util.fileToChars(filename);
+
+ // unmarshall the xml instance
+ PurchaseOrderDocument poDoc =
+ PurchaseOrderDocument.Factory.parse(new CharArrayReader(chars));
+ // retreive the purchase order
+ PurchaseOrderDocument.PurchaseOrder po = poDoc.getPurchaseOrder();
+
+ // warm up the vm
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ CharArrayReader reader = new CharArrayReader(chars);
+ hash += test.run(po);
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // run it again for the real measurement
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ CharArrayReader reader = new CharArrayReader(chars);
+ hash += test.run(po);
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // print the results
+ // Class.getSimpleName() is only provided in jdk1.5, so have to trim package name off test name for logging to support 1.4
+ System.out.print(Constants.DELIM+test.getClass().getName().substring(test.getClass().getName().lastIndexOf('.')+1)+" filesize="+chars.length+" ");
+ System.out.print("hash "+hash+" ");
+ System.out.print("time "+cputime+"\n");
+ }
+
+ private int run(PurchaseOrderDocument.PurchaseOrder p_po) throws Exception
+ {
+ XmlObject[] results = p_po.execQuery("declare namespace s='"+Constants.PO_NS+"'; "+
+ ".//s:line-item");
+
+ return results.length;
+ }
+
+}
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/svn/POReadAllSVN.java
URL: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/svn/POReadAllSVN.java?rev=233577&view=auto
==============================================================================
--- xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/svn/POReadAllSVN.java (added)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/svn/POReadAllSVN.java Fri Aug 19 16:32:14 2005
@@ -0,0 +1,117 @@
+/* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.xmlbeans.test.performance.svn;
+
+import java.io.CharArrayReader;
+
+import org.apache.xmlbeans.test.performance.utils.Constants;
+import org.apache.xmlbeans.test.performance.utils.PerfUtil;
+import org.openuri.easypo.Customer;
+import org.openuri.easypo.LineItem;
+import org.openuri.easypo.PurchaseOrderDocument;
+import org.openuri.easypo.Shipper;
+
+
+public class POReadAllSVN
+{
+ public static void main(String[] args) throws Exception
+ {
+
+ final int iterations = Constants.ITERATIONS;
+ String filename;
+
+ if(args.length == 0){
+ filename = Constants.PO_INSTANCE_1;
+ }
+ else if(args[0].length() > 1){
+ filename = Constants.XSD_DIR+Constants.P+args[0];
+ }
+ else{
+ switch( Integer.parseInt(args[0]) )
+ {
+ case 1: filename = Constants.PO_INSTANCE_1; break;
+ case 2: filename = Constants.PO_INSTANCE_2; break;
+ case 3: filename = Constants.PO_INSTANCE_3; break;
+ case 4: filename = Constants.PO_INSTANCE_4; break;
+ case 5: filename = Constants.PO_INSTANCE_5; break;
+ case 6: filename = Constants.PO_INSTANCE_6; break;
+ case 7: filename = Constants.PO_INSTANCE_7; break;
+ default: filename = Constants.PO_INSTANCE_1; break;
+ }
+ }
+
+ POReadAllSVN test = new POReadAllSVN();
+ PerfUtil util = new PerfUtil();
+ long cputime;
+ int hash = 0;
+
+ // get the xmlinstance
+ char[] chars = util.fileToChars(filename);
+
+ // warm up the vm
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ CharArrayReader reader = new CharArrayReader(chars);
+ hash += test.run(reader);
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // run it again for the real measurement
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ CharArrayReader reader = new CharArrayReader(chars);
+ hash += test.run(reader);
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // print the results
+ // Class.getSimpleName() is only provided in jdk1.5, so have to trim package name off test name for logging to support 1.4
+ System.out.print(Constants.DELIM+test.getClass().getName().substring(test.getClass().getName().lastIndexOf('.')+1)+" filesize="+chars.length+" ");
+ System.out.print("hash "+hash+" ");
+ System.out.print("time "+cputime+"\n");
+ }
+
+ private int run(CharArrayReader reader) throws Exception
+ {
+ int iSumStrings = 0;
+ // unmarshall the xml instance
+ PurchaseOrderDocument poDoc =
+ PurchaseOrderDocument.Factory.parse(reader);
+ // retreive the purchase order
+ PurchaseOrderDocument.PurchaseOrder po = poDoc.getPurchaseOrder();
+ // retreive the customer element
+ Customer customer = po.getCustomer();
+ iSumStrings += customer.getAddress().length();
+ iSumStrings += customer.getName().length();
+ // retreive the date
+ po.getDate();
+ // retreive all line items
+ LineItem[] lineitems = po.getLineItemArray();
+ // sum the line item prices and get the other childs
+ float sum = 0;
+ for(int i=0; i<lineitems.length; i++){
+ iSumStrings += lineitems[i].getDescription().length();
+ lineitems[i].getPerUnitOunces();
+ lineitems[i].getQuantity();
+ sum += lineitems[i].getPrice();
+ }
+ // retreive the shipper element
+ Shipper shipper = po.getShipper();
+ iSumStrings += shipper.getName().length();
+ shipper.getPerOunceRate();
+
+ return iSumStrings;
+ }
+}
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/svn/POReadOneSVN.java
URL: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/svn/POReadOneSVN.java?rev=233577&view=auto
==============================================================================
--- xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/svn/POReadOneSVN.java (added)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/svn/POReadOneSVN.java Fri Aug 19 16:32:14 2005
@@ -0,0 +1,100 @@
+/* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.xmlbeans.test.performance.svn;
+
+//import java.io.File;
+import java.io.CharArrayReader;
+
+import org.apache.xmlbeans.test.performance.utils.Constants;
+import org.apache.xmlbeans.test.performance.utils.PerfUtil;
+import org.openuri.easypo.LineItem;
+import org.openuri.easypo.PurchaseOrderDocument;
+//import org.openuri.easypo.Shipper;
+
+
+public class POReadOneSVN
+{
+ public static void main(String[] args) throws Exception
+ {
+ final int iterations = Constants.ITERATIONS;
+ String filename;
+
+ if(args.length == 0){
+ filename = Constants.PO_INSTANCE_1;
+ }
+ else if(args[0].length() > 1){
+ filename = Constants.XSD_DIR+Constants.P+args[0];
+ }
+ else{
+ switch( Integer.parseInt(args[0]) )
+ {
+ case 1: filename = Constants.PO_INSTANCE_1; break;
+ case 2: filename = Constants.PO_INSTANCE_2; break;
+ case 3: filename = Constants.PO_INSTANCE_3; break;
+ case 4: filename = Constants.PO_INSTANCE_4; break;
+ case 5: filename = Constants.PO_INSTANCE_5; break;
+ case 6: filename = Constants.PO_INSTANCE_6; break;
+ case 7: filename = Constants.PO_INSTANCE_7; break;
+ default: filename = Constants.PO_INSTANCE_1; break;
+ }
+ }
+
+ POReadOneSVN test = new POReadOneSVN();
+ PerfUtil util = new PerfUtil();
+ long cputime;
+ int hash = 0;
+
+ // get the xmlinstance
+ char[] chars = util.fileToChars(filename);
+
+ // warm up the vm
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ CharArrayReader reader = new CharArrayReader(chars);
+ hash += test.run(reader);
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // run it again for the real measurement
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ CharArrayReader reader = new CharArrayReader(chars);
+ hash += test.run(reader);
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // print the results
+ // Class.getSimpleName() is only provided in jdk1.5, so have to trim package name off test name for logging to support 1.4
+ System.out.print(Constants.DELIM+test.getClass().getName().substring(test.getClass().getName().lastIndexOf('.')+1)+" filesize="+chars.length+" ");
+ System.out.print("hash "+hash+" ");
+ System.out.print("time "+cputime+"\n");
+ }
+
+ private int run(CharArrayReader reader) throws Exception
+ {
+ // unmarshall the xml instance
+ PurchaseOrderDocument poDoc =
+ PurchaseOrderDocument.Factory.parse(reader);
+ // retreive the purchase order
+ PurchaseOrderDocument.PurchaseOrder po = poDoc.getPurchaseOrder();
+
+ // retreive the first line item
+ LineItem lineitem = po.getLineItemArray(0);
+
+ // return the char length of the description
+ return lineitem.getDescription().length();
+ }
+
+}
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/svn/POSelectLineItemsSVN.java
URL: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/svn/POSelectLineItemsSVN.java?rev=233577&view=auto
==============================================================================
--- xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/svn/POSelectLineItemsSVN.java (added)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/svn/POSelectLineItemsSVN.java Fri Aug 19 16:32:14 2005
@@ -0,0 +1,101 @@
+/* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.xmlbeans.test.performance.svn;
+
+//import java.io.File;
+import java.io.CharArrayReader;
+
+import org.apache.xmlbeans.test.performance.utils.Constants;
+import org.apache.xmlbeans.test.performance.utils.PerfUtil;
+//import org.openuri.easypo.LineItem;
+import org.openuri.easypo.PurchaseOrderDocument;
+//import org.openuri.easypo.Shipper;
+
+import org.apache.xmlbeans.XmlObject;
+
+
+public class POSelectLineItemsSVN
+{
+ public static void main(String[] args) throws Exception
+ {
+ final int iterations = Constants.ITERATIONS;
+ String filename;
+
+ if(args.length == 0){
+ filename = Constants.PO_INSTANCE_1;
+ }
+ else if(args[0].length() > 1){
+ filename = Constants.XSD_DIR+Constants.P+args[0];
+ }
+ else{
+ switch( Integer.parseInt(args[0]) )
+ {
+ case 1: filename = Constants.PO_INSTANCE_1; break;
+ case 2: filename = Constants.PO_INSTANCE_2; break;
+ case 3: filename = Constants.PO_INSTANCE_3; break;
+ case 4: filename = Constants.PO_INSTANCE_4; break;
+ case 5: filename = Constants.PO_INSTANCE_5; break;
+ case 6: filename = Constants.PO_INSTANCE_6; break;
+ case 7: filename = Constants.PO_INSTANCE_7; break;
+ default: filename = Constants.PO_INSTANCE_1; break;
+ }
+ }
+
+ POSelectLineItemsSVN test = new POSelectLineItemsSVN();
+ PerfUtil util = new PerfUtil();
+ long cputime;
+ int hash = 0;
+
+ // get the xmlinstance
+ char[] chars = util.fileToChars(filename);
+
+ // unmarshall the xml instance
+ PurchaseOrderDocument poDoc =
+ PurchaseOrderDocument.Factory.parse(new CharArrayReader(chars));
+ // retreive the purchase order
+ PurchaseOrderDocument.PurchaseOrder po = poDoc.getPurchaseOrder();
+
+ // warm up the vm
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ CharArrayReader reader = new CharArrayReader(chars);
+ hash += test.run(po);
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // run it again for the real measurement
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ CharArrayReader reader = new CharArrayReader(chars);
+ hash += test.run(po);
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // print the results
+ // Class.getSimpleName() is only provided in jdk1.5, so have to trim package name off test name for logging to support 1.4
+ System.out.print(Constants.DELIM+test.getClass().getName().substring(test.getClass().getName().lastIndexOf('.')+1)+" filesize="+chars.length+" ");
+ System.out.print("hash "+hash+" ");
+ System.out.print("time "+cputime+"\n");
+ }
+
+ private int run(PurchaseOrderDocument.PurchaseOrder p_po) throws Exception
+ {
+ XmlObject[] results = p_po.selectPath("declare namespace s='"+Constants.PO_NS+"'; "+
+ ".//s:line-item");
+
+ return results.length;
+ }
+
+}
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/svn/POTopDownSVN.java
URL: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/svn/POTopDownSVN.java?rev=233577&view=auto
==============================================================================
--- xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/svn/POTopDownSVN.java (added)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/svn/POTopDownSVN.java Fri Aug 19 16:32:14 2005
@@ -0,0 +1,91 @@
+/* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.xmlbeans.test.performance.svn;
+
+import java.util.Calendar;
+
+import org.apache.xmlbeans.test.performance.utils.Constants;
+import org.openuri.easypo.Customer;
+import org.openuri.easypo.LineItem;
+import org.openuri.easypo.PurchaseOrderDocument;
+import org.openuri.easypo.Shipper;
+import org.openuri.easypo.PurchaseOrderDocument.PurchaseOrder;
+
+
+public class POTopDownSVN
+{
+ public static void main(String[] args) throws Exception
+ {
+
+ POTopDownSVN test = new POTopDownSVN();
+ int iterations = Constants.ITERATIONS;
+ long cputime;
+ int hash = 0;
+
+ // warm up the vm
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run();
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // run it again for the real measurement
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run();
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // print the results
+ // Class.getSimpleName() is only provided in jdk1.5, so have to trim package name off test name for logging to support 1.4
+ System.out.print(Constants.DELIM+test.getClass().getName().substring(test.getClass().getName().lastIndexOf('.')+1)+" ");
+ System.out.print("hash "+hash+" ");
+ System.out.print("time "+cputime+"\n");
+ }
+
+ private int run() throws Exception
+ {
+ // create the purchase order
+ PurchaseOrderDocument podoc = PurchaseOrderDocument.Factory.newInstance();
+ PurchaseOrder po = podoc.addNewPurchaseOrder();
+
+ // create and initialize customer
+ Customer customer = po.addNewCustomer();
+ customer.setName(Constants.PO_CUSTOMER_NAME);
+ customer.setAddress(Constants.PO_CUSTOMER_ADDR);
+
+ // set the date
+ po.setDate(Calendar.getInstance());
+
+ // create and initialize the line item array
+ for (int i=0; i<Constants.PO_NUM_LINEITEMS; i++)
+ {
+ LineItem li = po.addNewLineItem();
+ li.setDescription(Constants.PO_LI_DESC);
+ li.setPerUnitOunces(Constants.PO_LI_PUO);
+ li.setPrice(Constants.PO_LI_PRICE);
+ li.setQuantity(Constants.PO_LI_QUANTITY);
+ }
+
+ // create and initialize the shipper
+ Shipper shipper = po.addNewShipper();
+ shipper.setName(Constants.PO_SHIPPER_NAME);
+ shipper.setPerOunceRate(Constants.PO_SHIPPER_POR);
+
+ // calculate a hash to return
+ int hash = ( po.getLineItemArray().length ) * 17;
+ return hash;
+ }
+}
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/svn/POTopDownSaveSVN.java
URL: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/svn/POTopDownSaveSVN.java?rev=233577&view=auto
==============================================================================
--- xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/svn/POTopDownSaveSVN.java (added)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/svn/POTopDownSaveSVN.java Fri Aug 19 16:32:14 2005
@@ -0,0 +1,98 @@
+/* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.xmlbeans.test.performance.svn;
+
+import java.io.Reader;
+import java.util.Calendar;
+
+import org.apache.xmlbeans.test.performance.utils.Constants;
+import org.openuri.easypo.Customer;
+import org.openuri.easypo.LineItem;
+import org.openuri.easypo.PurchaseOrderDocument;
+import org.openuri.easypo.Shipper;
+import org.openuri.easypo.PurchaseOrderDocument.PurchaseOrder;
+
+
+public class POTopDownSaveSVN
+{
+ public static void main(String[] args) throws Exception
+ {
+
+ POTopDownSaveSVN test = new POTopDownSaveSVN();
+ int iterations = Constants.ITERATIONS;
+ long cputime;
+ int hash = 0;
+
+ // warm up the vm
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run();
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // run it again for the real measurement
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run();
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // print the results
+ // Class.getSimpleName() is only provided in jdk1.5, so have to trim package name off test name for logging to support 1.4
+ System.out.print(Constants.DELIM+test.getClass().getName().substring(test.getClass().getName().lastIndexOf('.')+1)+" ");
+ System.out.print("hash "+hash+" ");
+ System.out.print("time "+cputime+"\n");
+ }
+
+ private int run() throws Exception
+ {
+ // create the purchase order
+ PurchaseOrderDocument podoc = PurchaseOrderDocument.Factory.newInstance();
+ PurchaseOrder po = podoc.addNewPurchaseOrder();
+
+ // create and initialize customer
+ Customer customer = po.addNewCustomer();
+ customer.setName(Constants.PO_CUSTOMER_NAME);
+ customer.setAddress(Constants.PO_CUSTOMER_ADDR);
+
+ // set the date
+ po.setDate(Calendar.getInstance());
+
+ // create and initialize the line item array
+ for (int i=0; i<Constants.PO_NUM_LINEITEMS; i++)
+ {
+ LineItem li = po.addNewLineItem();
+ li.setDescription(Constants.PO_LI_DESC);
+ li.setPerUnitOunces(Constants.PO_LI_PUO);
+ li.setPrice(Constants.PO_LI_PRICE);
+ li.setQuantity(Constants.PO_LI_QUANTITY);
+ }
+
+ // create and initialize the shipper
+ Shipper shipper = po.addNewShipper();
+ shipper.setName(Constants.PO_SHIPPER_NAME);
+ shipper.setPerOunceRate(Constants.PO_SHIPPER_POR);
+
+ // grab the instance that was constructed
+ Reader reader = po.newReader();
+ int c;
+ while( (c=reader.read()) != -1){}
+ if(null != reader) reader.close();
+
+ // calculate a hash to return
+ int hash = ( po.getLineItemArray().length ) * 17;
+ return hash;
+ }
+}
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/svn/POValidateXmlObjSVN.java
URL: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/svn/POValidateXmlObjSVN.java?rev=233577&view=auto
==============================================================================
--- xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/svn/POValidateXmlObjSVN.java (added)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/svn/POValidateXmlObjSVN.java Fri Aug 19 16:32:14 2005
@@ -0,0 +1,93 @@
+/* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.xmlbeans.test.performance.svn;
+
+import java.io.CharArrayReader;
+
+import org.apache.xmlbeans.test.performance.utils.Constants;
+import org.apache.xmlbeans.test.performance.utils.PerfUtil;
+import org.openuri.easypo.PurchaseOrderDocument;
+
+public class POValidateXmlObjSVN
+{
+ public static void main(String[] args) throws Exception
+ {
+
+ final int iterations = Constants.ITERATIONS;
+ String filename;
+
+ if(args.length == 0){
+ filename = Constants.PO_INSTANCE_1;
+ }
+ else if(args[0].length() > 1){
+ filename = Constants.XSD_DIR+Constants.P+args[0];
+ }
+ else{
+ switch( Integer.parseInt(args[0]) )
+ {
+ case 1: filename = Constants.PO_INSTANCE_1; break;
+ case 2: filename = Constants.PO_INSTANCE_2; break;
+ case 3: filename = Constants.PO_INSTANCE_3; break;
+ case 4: filename = Constants.PO_INSTANCE_4; break;
+ case 5: filename = Constants.PO_INSTANCE_5; break;
+ case 6: filename = Constants.PO_INSTANCE_6; break;
+ case 7: filename = Constants.PO_INSTANCE_7; break;
+ default: filename = Constants.PO_INSTANCE_1; break;
+ }
+ }
+
+ POValidateXmlObjSVN test = new POValidateXmlObjSVN();
+ PerfUtil util = new PerfUtil();
+ long cputime;
+ int hash = 0;
+
+ // get the xmlinstance
+ char[] chars = util.fileToChars(filename);
+
+
+ // parse the instance
+ PurchaseOrderDocument podoc =
+ PurchaseOrderDocument.Factory.parse(new CharArrayReader(chars));
+
+ // warm up the vm
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run(podoc);
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // run it again for the real measurement
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run(podoc);
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // print the results
+ // Class.getSimpleName() is only provided in jdk1.5, so have to trim package name off test name for logging to support 1.4
+ System.out.print(Constants.DELIM+test.getClass().getName().substring(test.getClass().getName().lastIndexOf('.')+1)+" filesize="+chars.length+" ");
+ System.out.print("hash "+hash+" ");
+ System.out.print("time "+cputime+"\n");
+ }
+
+ private int run(PurchaseOrderDocument p_podoc) throws Exception
+ {
+ // validate it
+ p_podoc.validate();
+
+ // return an int for the hash
+ return 17;
+ }
+}
Added: xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/svn/PrimTopDownSVN.java
URL: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/svn/PrimTopDownSVN.java?rev=233577&view=auto
==============================================================================
--- xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/svn/PrimTopDownSVN.java (added)
+++ xmlbeans/trunk/test/perf/src/org/apache/xmlbeans/test/performance/svn/PrimTopDownSVN.java Fri Aug 19 16:32:14 2005
@@ -0,0 +1,81 @@
+/* Copyright 2004 The Apache Software Foundation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.xmlbeans.test.performance.svn;
+
+import org.apache.xmlbeans.test.performance.utils.Constants;
+import org.openuri.primitives.Misc;
+import org.openuri.primitives.Numerics;
+import org.openuri.primitives.PrimitivesDocument;
+import org.openuri.primitives.PrimitivesDocument.Primitives;
+
+public class PrimTopDownSVN
+{
+ public static void main(String[] args) throws Exception
+ {
+
+ PrimTopDownSVN test = new PrimTopDownSVN();
+ int iterations = Constants.ITERATIONS;
+ long cputime;
+ int hash = 0;
+
+ // warm up the vm
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run();
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // run it again for the real measurement
+ cputime = System.currentTimeMillis();
+ for(int i=0; i<iterations; i++){
+ hash += test.run();
+ }
+ cputime = System.currentTimeMillis() - cputime;
+
+ // print the results
+ // Class.getSimpleName() is only provided in jdk1.5, so have to trim package name off test name for logging to support 1.4
+ System.out.print(Constants.DELIM+test.getClass().getName().substring(test.getClass().getName().lastIndexOf('.')+1)+" ");
+ System.out.print("hash "+hash+" ");
+ System.out.print("time "+cputime+"\n");
+ }
+
+ private int run() throws Exception
+ {
+ // create the doc
+ PrimitivesDocument doc = PrimitivesDocument.Factory.newInstance();
+ Primitives prim = doc.addNewPrimitives();
+
+ // create and initialize numeric elements
+ for(int i=0; i<Constants.PO_NUM_LINEITEMS; i++)
+ {
+ Numerics numerics = prim.addNewNumerics();
+ numerics.setMybyte(Constants.myByte);
+ numerics.setMyint(Constants.myInt);
+ numerics.setMylong(Constants.myLong);
+ numerics.setMyshort(Constants.myShort);
+ numerics.setMyhexbin(Constants.myHexbin);
+ numerics.setMydouble(Constants.myDouble);
+ numerics.setMyfloat(Constants.myFloat);
+ }
+
+ // create and initialize the misc element
+ Misc misc = prim.addNewMisc();
+ misc.setMybool(Constants.myBool);
+
+ // calculate a hash to return
+ int hash = ( prim.getNumericsArray().length ) * 17;
+ return hash;
+ }
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@xmlbeans.apache.org
For additional commands, e-mail: commits-help@xmlbeans.apache.org