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>