You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ojb-dev@db.apache.org by th...@apache.org on 2003/06/15 00:07:00 UTC
cvs commit: db-ojb/xdocs performance.xml
thma 2003/06/14 15:07:00
Modified: xdocs performance.xml
Log:
add some more details
Revision Changes Path
1.10 +107 -24 db-ojb/xdocs/performance.xml
Index: performance.xml
===================================================================
RCS file: /home/cvs/db-ojb/xdocs/performance.xml,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- performance.xml 10 Jun 2003 00:57:19 -0000 1.9
+++ performance.xml 14 Jun 2003 22:07:00 -0000 1.10
@@ -130,38 +130,121 @@
If running OJB out of the box the tests will be performed against
the Hypersonic SQL shipped with OJB. A typical output looks like
follows:
-<source>
- [ojb] .[performance] INFO: Test for PB-api
- [ojb] [performance] INFO:
- [ojb] [performance] INFO: inserting 2500 Objects: 621 msec
- [ojb] [performance] INFO: updating 2500 Objects: 921 msec
- [ojb] [performance] INFO: querying 2500 Objects: 511 msec
- [ojb] [performance] INFO: querying 2500 Objects: 20 msec
- [ojb] [performance] INFO: fetching 2500 Objects: 130 msec
- [ojb] [performance] INFO: deleting 2500 Objects: 331 msec
-
- .....
-
-[jdbc] .[performance] INFO: Test for native JDBC
-[jdbc] [performance] INFO:
-[jdbc] [performance] INFO: inserting 2500 Objects: 450 msec
-[jdbc] [performance] INFO: updating 2500 Objects: 571 msec
-[jdbc] [performance] INFO: querying 2500 Objects: 341 msec
-[jdbc] [performance] INFO: querying 2500 Objects: 320 msec
-[jdbc] [performance] INFO: fetching 2500 Objects: 20 msec
-[jdbc] [performance] INFO: deleting 2500 Objects: 150 msec
+<source><![CDATA[
+performance:
+ [ojb] .[performance] INFO: Test for PB-api
+ [ojb] [performance] INFO:
+ [ojb] [performance] INFO: inserting 2500 Objects: 3257 msec
+ [ojb] [performance] INFO: updating 2500 Objects: 1396 msec
+ [ojb] [performance] INFO: querying 2500 Objects: 1322 msec
+ [ojb] [performance] INFO: querying 2500 Objects: 26 msec
+ [ojb] [performance] INFO: fetching 2500 Objects: 495 msec
+ [ojb] [performance] INFO: deleting 2500 Objects: 592 msec
+ [ojb] [performance] INFO:
+ [ojb] [performance] INFO: inserting 2500 Objects: 869 msec
+ [ojb] [performance] INFO: updating 2500 Objects: 1567 msec
+ [ojb] [performance] INFO: querying 2500 Objects: 734 msec
+ [ojb] [performance] INFO: querying 2500 Objects: 20 msec
+ [ojb] [performance] INFO: fetching 2500 Objects: 288 msec
+ [ojb] [performance] INFO: deleting 2500 Objects: 447 msec
+ [ojb] [performance] INFO:
+ [ojb] [performance] INFO: inserting 2500 Objects: 979 msec
+ [ojb] [performance] INFO: updating 2500 Objects: 1240 msec
+ [ojb] [performance] INFO: querying 2500 Objects: 741 msec
+ [ojb] [performance] INFO: querying 2500 Objects: 18 msec
+ [ojb] [performance] INFO: fetching 2500 Objects: 289 msec
+ [ojb] [performance] INFO: deleting 2500 Objects: 446 msec
-.....
+ [ojb] Time: 18,964
-</source>
+ [ojb] OK (1 test)
+
+ [jdbc] .[performance] INFO: Test for native JDBC
+ [jdbc] [performance] INFO:
+ [jdbc] [performance] INFO: inserting 2500 Objects: 651 msec
+ [jdbc] [performance] INFO: updating 2500 Objects: 775 msec
+ [jdbc] [performance] INFO: querying 2500 Objects: 616 msec
+ [jdbc] [performance] INFO: querying 2500 Objects: 384 msec
+ [jdbc] [performance] INFO: fetching 2500 Objects: 49 msec
+ [jdbc] [performance] INFO: deleting 2500 Objects: 213 msec
+ [jdbc] [performance] INFO:
+ [jdbc] [performance] INFO: inserting 2500 Objects: 508 msec
+ [jdbc] [performance] INFO: updating 2500 Objects: 686 msec
+ [jdbc] [performance] INFO: querying 2500 Objects: 390 msec
+ [jdbc] [performance] INFO: querying 2500 Objects: 360 msec
+ [jdbc] [performance] INFO: fetching 2500 Objects: 46 msec
+ [jdbc] [performance] INFO: deleting 2500 Objects: 204 msec
+ [jdbc] [performance] INFO:
+ [jdbc] [performance] INFO: inserting 2500 Objects: 538 msec
+ [jdbc] [performance] INFO: updating 2500 Objects: 775 msec
+ [jdbc] [performance] INFO: querying 2500 Objects: 384 msec
+ [jdbc] [performance] INFO: querying 2500 Objects: 360 msec
+ [jdbc] [performance] INFO: fetching 2500 Objects: 48 msec
+ [jdbc] [performance] INFO: deleting 2500 Objects: 204 msec
+
+ [jdbc] Time: 18,363
+
+ [jdbc] OK (1 test)
+
+ [odmg] .[performance] INFO: Test for ODMG-api
+ [odmg] [performance] INFO:
+ [odmg] [performance] INFO: inserting 2500 Objects: 12151 msec
+ [odmg] [performance] INFO: updating 2500 Objects: 2937 msec
+ [odmg] [performance] INFO: querying 2500 Objects: 4691 msec
+ [odmg] [performance] INFO: querying 2500 Objects: 2239 msec
+ [odmg] [performance] INFO: fetching 2500 Objects: 1633 msec
+ [odmg] [performance] INFO: deleting 2500 Objects: 1815 msec
+ [odmg] [performance] INFO:
+ [odmg] [performance] INFO: inserting 2500 Objects: 2483 msec
+ [odmg] [performance] INFO: updating 2500 Objects: 2868 msec
+ [odmg] [performance] INFO: querying 2500 Objects: 3272 msec
+ [odmg] [performance] INFO: querying 2500 Objects: 2223 msec
+ [odmg] [performance] INFO: fetching 2500 Objects: 1038 msec
+ [odmg] [performance] INFO: deleting 2500 Objects: 1717 msec
+ [odmg] [performance] INFO:
+ [odmg] [performance] INFO: inserting 2500 Objects: 2666 msec
+ [odmg] [performance] INFO: updating 2500 Objects: 2841 msec
+ [odmg] [performance] INFO: querying 2500 Objects: 2092 msec
+ [odmg] [performance] INFO: querying 2500 Objects: 2161 msec
+ [odmg] [performance] INFO: fetching 2500 Objects: 1036 msec
+ [odmg] [performance] INFO: deleting 2500 Objects: 1741 msec
+
+ [odmg] Time: 55,186
+]]></source>
</p>
<p>
+Some notes on these test results:
+<ul>
+ <li>
+ You see a consistently better performance in the second and third run.
+ this is caused by warming up effects of JVM and OJB.
+ </li>
+ <li>
+ PB and native JDBC need about the same time for the three runs although JDBC performance is better for most operations.
+ this is caused by the second run of the querying operations.
+ In the second run OJB can load all objects from the cache, thus the time is <b>much</b> shorter.
+ Hence the interesting result: if you have an application that has a lot of lookups, OJB can be faster than a native JDBC application!
+ </li>
+ <li>
+ ODMG is much slower than PB or JDBC. This is due to the complex object level transaction management it is doing.
+ </li>
+ <li>
+ You can see that for HSQLDB operations like insert and update are much faster with JDBC than with PB (60% and more).
+ This ratio is so high, because HSQLDB is much faster than ordinary database servers (as it's inmemory).
+ If you work against Oracle or DB2 the percentual OJB overhead is going down a lot (10 - 15 %), as the database latency is much longer than the OJB overhead.
+ </li>
+</ul>
+</p>
+
+
+<p>
It's easy to change target database. Please
refer to this <a href="platforms.html">document for details</a>.
<br/>
Also it's possible to change the number of test objects by
editing the ant-target in build.xml.
</p>
+
</subsection>