objectbridge-developers Mailing List for ObJectRelationalBridge (Page 34)
Brought to you by:
thma
You can subscribe to this list here.
2000 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(14) |
Dec
(20) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2001 |
Jan
(33) |
Feb
(8) |
Mar
(3) |
Apr
(1) |
May
(18) |
Jun
(6) |
Jul
(15) |
Aug
(71) |
Sep
(29) |
Oct
(43) |
Nov
(77) |
Dec
(54) |
2002 |
Jan
(54) |
Feb
(147) |
Mar
(144) |
Apr
(163) |
May
(307) |
Jun
(240) |
Jul
|
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
|
From: Jon B. <jon...@ac...> - 2002-03-05 14:47:17
|
Well, I did have JBuilder 4 running at the time, which I killed and then re-ran the tests. Shaved about .5 of a second off the total :-) I can't understand why your tests take so long - the hardware architecture is not *that* different, and having 2 CPUs instead of 1 doesn't make a vast difference. Jon. Ricardo Argüello wrote: > Thomas, > > How could you get faster results than our "twin xeon" friend here!?! > > Thomas: > [ojb] 17.435 > [jdbc] 12.065 > > Jon Barber: > [ojb] 96.75 > [jdbc] 65.781 > > > Definitely, something is wrong with your tests. > When I ran my tests, NO other process where running, no antivirus, no M$ Messenger, nothing but OJB... > > > Ricardo > > > ----- Original Message ----- > From: "Jon Barber" <jon...@ac...> > To: "Ricardo Argüello" <ri...@ya...> > Cc: "Thomas Mahler" <tho...@ho...>; "Jakob Braeuchi" <jbr...@ho...>; "objectbridge" <obj...@li...> > Sent: Tuesday, March 05, 2002 6:50 AM > Subject: Re: [OJB-developers] HSQLDB performance also bad > > > >>OK, for the record, my times from 'build performance' is >> >>ojb : 96.75 >>jdbc : 65.781 >> >>This was on HSQL on a twin Intel XEON 1.4Ghz box with 512Mb Win 2000 SP2 >>Sun JDK 1.3.1_01. >> >>I also tried against the PointBase java db running in server mode and >>got slightly worse performance (in the order of about 1 second slower in >>total). >> >>I'd love to try the same test through Castor and TOPLink. >> >>Jon. >> >> >> > > _______________________________________________ > Objectbridge-developers mailing list > Obj...@li... > https://lists.sourceforge.net/lists/listinfo/objectbridge-developers > > |
From: <ri...@ya...> - 2002-03-05 14:29:53
|
Thomas, How could you get faster results than our "twin xeon" friend here!?! Thomas: [ojb] 17.435 [jdbc] 12.065 Jon Barber: [ojb] 96.75 [jdbc] 65.781 Definitely, something is wrong with your tests. When I ran my tests, NO other process where running, no antivirus, no M$ = Messenger, nothing but OJB... Ricardo ----- Original Message -----=20 From: "Jon Barber" <jon...@ac...> To: "Ricardo Arg=FCello" <ri...@ya...> Cc: "Thomas Mahler" <tho...@ho...>; "Jakob Braeuchi" = <jbr...@ho...>; "objectbridge" = <obj...@li...> Sent: Tuesday, March 05, 2002 6:50 AM Subject: Re: [OJB-developers] HSQLDB performance also bad > OK, for the record, my times from 'build performance' is >=20 > ojb : 96.75 > jdbc : 65.781 >=20 > This was on HSQL on a twin Intel XEON 1.4Ghz box with 512Mb Win 2000 = SP2 > Sun JDK 1.3.1_01. >=20 > I also tried against the PointBase java db running in server mode and=20 > got slightly worse performance (in the order of about 1 second slower = in=20 > total). >=20 > I'd love to try the same test through Castor and TOPLink. >=20 > Jon. >=20 > |
From: Jon B. <jon...@ac...> - 2002-03-05 11:52:58
|
OK, for the record, my times from 'build performance' is ojb : 96.75 jdbc : 65.781 This was on HSQL on a twin Intel XEON 1.4Ghz box with 512Mb Win 2000 SP2 Sun JDK 1.3.1_01. I also tried against the PointBase java db running in server mode and got slightly worse performance (in the order of about 1 second slower in total). I'd love to try the same test through Castor and TOPLink. Jon. |
From: Thomas M. <tho...@ho...> - 2002-03-05 06:41:00
|
Hi Ricardo, Of course I did not mention on which machine I was running my tests. It=20 is a lapttop with an AMD AThlon 1GHz CPU with 256 MB Ram, Runninng linux and WinXP. I attached a new html file assembling some more test results. They all=20 show a reasonable performance. Your HSQLDB results are *really bad*. I have no Idea what might cause=20 this. Our hardware is quite similar?! Ricardo Arg=FCello wrote: > Hello, >=20 > This is the performance results using the "embedded" hsql database. I r= an them out of the box (unzipped the OJB 0.7.3434 src file), with no othe= r process running. >=20 > Hardware : Intel Pentium III 1 GHz, 256 MB RAM > OS: Microsoft Windows 2000 SP2 > JDK: Sun 1.3.1_01 > OJB: 0.7.343 > DB: HSQLDB >=20 > ------------------------------------------------------------- > performance: > [ojb] [BOOT] INFO: OJB.properties: file:/C:/Java/ojbperftest/ojb-= 0.7.343/b > uild/test/ojb/OJB.properties > [ojb] .[performance] INFO: > [ojb] [performance] INFO: inserting 10000 Objects: 68859 msec > [ojb] [performance] INFO: updating 10000 Objects: 79654 msec > [ojb] [performance] INFO: querying 10000 Objects: 21981 msec > [ojb] [performance] INFO: querying 10000 Objects: 431 msec > [ojb] [performance] INFO: fetching 10000 Objects: 7441 msec > [ojb] [performance] INFO: deleting 10000 Objects: 38425 msec > [ojb] [performance] INFO: > [ojb] [performance] INFO: inserting 10000 Objects: 61659 msec > [ojb] [performance] INFO: updating 10000 Objects: 83019 msec > [ojb] [performance] INFO: querying 10000 Objects: 22352 msec > [ojb] [performance] INFO: querying 10000 Objects: 411 msec > [ojb] [performance] INFO: fetching 10000 Objects: 8622 msec > [ojb] [performance] INFO: deleting 10000 Objects: 37604 msec > [ojb] [performance] INFO: > [ojb] [performance] INFO: inserting 10000 Objects: 68679 msec > [ojb] [performance] INFO: updating 10000 Objects: 82068 msec > [ojb] [performance] INFO: querying 10000 Objects: 21992 msec > [ojb] [performance] INFO: querying 10000 Objects: 410 msec > [ojb] [performance] INFO: fetching 10000 Objects: 8943 msec > [ojb] [performance] INFO: deleting 10000 Objects: 37835 msec > [ojb] > [ojb] Time: 654.151 > [ojb] > [ojb] OK (1 tests) > [ojb] > [jdbc] [BOOT] INFO: OJB.properties: file:/C:/Java/ojbperftest/ojb-= 0.7.343/b > uild/test/ojb/OJB.properties > [jdbc] .[performance] INFO: > [jdbc] [performance] INFO: inserting 10000 Objects: 18306 msec > [jdbc] [performance] INFO: updating 10000 Objects: 29653 msec > [jdbc] [performance] INFO: querying 10000 Objects: 15893 msec > [jdbc] [performance] INFO: querying 10000 Objects: 14551 msec > [jdbc] [performance] INFO: fetching 10000 Objects: 490 msec > [jdbc] [performance] INFO: deleting 10000 Objects: 9755 msec > [jdbc] [performance] INFO: > [jdbc] [performance] INFO: inserting 10000 Objects: 18066 msec > [jdbc] [performance] INFO: updating 10000 Objects: 29001 msec > [jdbc] [performance] INFO: querying 10000 Objects: 14601 msec > [jdbc] [performance] INFO: querying 10000 Objects: 14571 msec > [jdbc] [performance] INFO: fetching 10000 Objects: 551 msec > [jdbc] [performance] INFO: deleting 10000 Objects: 9794 msec > [jdbc] [performance] INFO: > [jdbc] [performance] INFO: inserting 10000 Objects: 18216 msec > [jdbc] [performance] INFO: updating 10000 Objects: 32197 msec > [jdbc] [performance] INFO: querying 10000 Objects: 15783 msec > [jdbc] [performance] INFO: querying 10000 Objects: 15722 msec > [jdbc] [performance] INFO: fetching 10000 Objects: 1633 msec > [jdbc] [performance] INFO: deleting 10000 Objects: 9373 msec > [jdbc] > [jdbc] Time: 385.254 > [jdbc] > [jdbc] OK (1 tests) > [jdbc] >=20 > BUILD SUCCESSFUL >=20 > Total time: 18 minutes 41 seconds > ------------------------------------------------------------- >=20 >=20 > These results also look very bad, compared to what Thomas sent me for H= SQL: >=20 > Mine: > [ojb] Time: 654.151 > [jdbc] Time: 385.254 >=20 > Thomas's > [ojb] Time: 17.435 > [jdbc] Time: 12.065 >=20 >=20 > How can this be possible???????? >=20 >=20 >=20 > I ran the test (OJB + HSQL) in ANOTHER machine, a Pentium 500 MHz + 256= MB RAM, and got these also dissapointing results: >=20 > performance: > [ojb] [BOOT] INFO: OJB.properties: file:/C:/ojb/build/test/ojb/OJ= B.propert > ies > [ojb] .[performance] INFO: > [ojb] [performance] INFO: inserting 10000 Objects: 84774 msec > [ojb] [performance] INFO: updating 10000 Objects: 94948 msec > [ojb] [performance] INFO: querying 10000 Objects: 44485 msec > [ojb] [performance] INFO: querying 10000 Objects: 350 msec > [ojb] [performance] INFO: fetching 10000 Objects: 2643 msec > [ojb] [performance] INFO: deleting 10000 Objects: 26018 msec > [ojb] [performance] INFO: > [ojb] [performance] INFO: inserting 10000 Objects: 81099 msec > [ojb] [performance] INFO: updating 10000 Objects: 97512 msec > [ojb] [performance] INFO: querying 10000 Objects: 44915 msec > [ojb] [performance] INFO: querying 10000 Objects: 341 msec > [ojb] [performance] INFO: fetching 10000 Objects: 3345 msec > [ojb] [performance] INFO: deleting 10000 Objects: 25597 msec > [ojb] [performance] INFO: > [ojb] [performance] INFO: inserting 10000 Objects: 85965 msec > [ojb] [performance] INFO: updating 10000 Objects: 96331 msec > [ojb] [performance] INFO: querying 10000 Objects: 44264 msec > [ojb] [performance] INFO: querying 10000 Objects: 341 msec > [ojb] [performance] INFO: fetching 10000 Objects: 2934 msec > [ojb] [performance] INFO: deleting 10000 Objects: 24806 msec > [ojb] > [ojb] Time: 762.521 > [ojb] > [ojb] OK (1 tests) > [ojb] > [jdbc] [BOOT] INFO: OJB.properties: file:/C:/ojb/build/test/ojb/OJ= B.propert > ies > [jdbc] .[performance] INFO: > [jdbc] [performance] INFO: inserting 10000 Objects: 20159 msec > [jdbc] [performance] INFO: updating 10000 Objects: 30284 msec > [jdbc] [performance] INFO: querying 10000 Objects: 21091 msec > [jdbc] [performance] INFO: querying 10000 Objects: 20540 msec > [jdbc] [performance] INFO: fetching 10000 Objects: 311 msec > [jdbc] [performance] INFO: deleting 10000 Objects: 7821 msec > [jdbc] [performance] INFO: > [jdbc] [performance] INFO: inserting 10000 Objects: 24616 msec > [jdbc] [performance] INFO: updating 10000 Objects: 31246 msec > [jdbc] [performance] INFO: querying 10000 Objects: 20810 msec > [jdbc] [performance] INFO: querying 10000 Objects: 20590 msec > [jdbc] [performance] INFO: fetching 10000 Objects: 1062 msec > [jdbc] [performance] INFO: deleting 10000 Objects: 7841 msec > [jdbc] [performance] INFO: > [jdbc] [performance] INFO: inserting 10000 Objects: 25067 msec > [jdbc] [performance] INFO: updating 10000 Objects: 33348 msec > [jdbc] [performance] INFO: querying 10000 Objects: 21401 msec > [jdbc] [performance] INFO: querying 10000 Objects: 21822 msec > [jdbc] [performance] INFO: fetching 10000 Objects: 711 msec > [jdbc] [performance] INFO: deleting 10000 Objects: 8833 msec > [jdbc] > [jdbc] Time: 444.368 > [jdbc] > [jdbc] OK (1 tests) > [jdbc] > ---------------------------------------------------------------- >=20 > Totals: > [ojb] Time: 762.521 > [jdbc] Time: 444.368 >=20 >=20 >=20 > I ran the test in my 1GHz machine, but with OJB 0.7.325 (just to find o= ut if OJB had become slower): >=20 > HSQL + OJB 0.7.325: > -------------------------------------------------- > performance: > [ojb] [BOOT] INFO: OJB.properties: file:/C:/Java/ojb-0.7.325/buil= d/test/oj > b/OJB.properties > [ojb] .0 INFO [main] performance - > [ojb] 43032 INFO [main] performance - inserting 10000 Objects: 4= 2982 msec >=20 > [ojb] 94686 INFO [main] performance - updating 10000 Objects: 51= 614 msec > [ojb] 118440 INFO [main] performance - querying 10000 Objects: 2= 3724 msec >=20 > [ojb] 118731 INFO [main] performance - querying 10000 Objects: 2= 51 msec > [ojb] 124539 INFO [main] performance - fetching 10000 Objects: 5= 728 msec > [ojb] 146230 INFO [main] performance - deleting 10000 Objects: 2= 1681 msec >=20 > [ojb] 146240 INFO [main] performance - > [ojb] 183113 INFO [main] performance - inserting 10000 Objects: = 36873 mse > c > [ojb] 239294 INFO [main] performance - updating 10000 Objects: 5= 6141 msec >=20 > [ojb] 263068 INFO [main] performance - querying 10000 Objects: 2= 3764 msec >=20 > [ojb] 263309 INFO [main] performance - querying 10000 Objects: 2= 21 msec > [ojb] 271400 INFO [main] performance - fetching 10000 Objects: 8= 061 msec > [ojb] 291709 INFO [main] performance - deleting 10000 Objects: 2= 0299 msec >=20 > [ojb] 291719 INFO [main] performance - > [ojb] 334301 INFO [main] performance - inserting 10000 Objects: = 42562 mse > c > [ojb] 387477 INFO [main] performance - updating 10000 Objects: 5= 3146 msec >=20 > [ojb] 410340 INFO [main] performance - querying 10000 Objects: 2= 2853 msec >=20 > [ojb] 410590 INFO [main] performance - querying 10000 Objects: 2= 40 msec > [ojb] 418402 INFO [main] performance - fetching 10000 Objects: 7= 802 msec > [ojb] 438801 INFO [main] performance - deleting 10000 Objects: 2= 0389 msec >=20 > [ojb] > [ojb] Time: 443.167 > [ojb] > [ojb] OK (1 tests) > [ojb] > [jdbc] [BOOT] INFO: OJB.properties: file:/C:/Java/ojb-0.7.325/buil= d/test/oj > b/OJB.properties > [jdbc] .0 INFO [main] performance - > [jdbc] 127333 INFO [main] performance - inserting 10000 Objects: = 17976 mse > c > [jdbc] 157586 INFO [main] performance - updating 10000 Objects: 3= 0213 msec >=20 > [jdbc] 173269 INFO [main] performance - querying 10000 Objects: 1= 5653 msec >=20 > [jdbc] 187710 INFO [main] performance - querying 10000 Objects: 1= 4381 msec >=20 > [jdbc] 189062 INFO [main] performance - fetching 10000 Objects: 1= 272 msec > [jdbc] 198876 INFO [main] performance - deleting 10000 Objects: 9= 804 msec > [jdbc] 198886 INFO [main] performance - > [jdbc] 217032 INFO [main] performance - inserting 10000 Objects: = 18096 mse > c > [jdbc] 244551 INFO [main] performance - updating 10000 Objects: 2= 7469 msec >=20 > [jdbc] 259052 INFO [main] performance - querying 10000 Objects: 1= 4480 msec >=20 > [jdbc] 273373 INFO [main] performance - querying 10000 Objects: 1= 4301 msec >=20 > [jdbc] 274124 INFO [main] performance - fetching 10000 Objects: 7= 41 msec > [jdbc] 283978 INFO [main] performance - deleting 10000 Objects: 9= 844 msec > [jdbc] 283988 INFO [main] performance - > [jdbc] 302495 INFO [main] performance - inserting 10000 Objects: = 18507 mse > c > [jdbc] 332858 INFO [main] performance - updating 10000 Objects: 3= 0333 msec >=20 > [jdbc] 348231 INFO [main] performance - querying 10000 Objects: 1= 5363 msec >=20 > [jdbc] 363563 INFO [main] performance - querying 10000 Objects: 1= 5322 msec >=20 > [jdbc] 365335 INFO [main] performance - fetching 10000 Objects: 1= 732 msec > [jdbc] 374789 INFO [main] performance - deleting 10000 Objects: 9= 424 msec > [jdbc] > [jdbc] Time: 378.224 > [jdbc] > [jdbc] OK (1 tests) > [jdbc] >=20 > BUILD SUCCESSFUL >=20 > Total time: 14 minutes 7 seconds > -------------------------------------------------- >=20 >=20 >=20 >=20 > I'm really confused here, how can I get this slow performance, not in o= ne, but in two differente computers, when Thomas says OJB + HSQL should p= erform like this: >=20 > [ojb] Time: 17.435 > [jdbc] Time: 12.065 >=20 >=20 > PLEASE give me a hand here, post your performance results, with OJB + H= SQL, and then with OJB + MySQL. > I really need to make the system fast, or else I'll have to code everyt= hing again, using JDBC... a nightmare. >=20 As I said before: Even your native JDBC results are very bad! Maybe=20 there are some (not OJB related) problems on your machines. (E.G. There=20 had been a Anti-Virus Software in my company that brought several=20 machines down, etc. etc.) Mabye you don't have enough RAM, too much other processes running or... > Does anybody have a clue here? I thought that I had a mysql JDBC driver= problem, but looks like the HSQL results are also slow! Does anybody hav= e any idea of what can I be doing wrong??? >=20 Agreed. This really looks desolate! Thomas > Thanks in advance, >=20 >=20 > Ricardo Arguello >=20 >=20 >=20 >=20 > _______________________________________________ > Objectbridge-developers mailing list > Obj...@li... > https://lists.sourceforge.net/lists/listinfo/objectbridge-developers >=20 >=20 >=20 >=20 |
From: <ri...@ya...> - 2002-03-04 20:59:51
|
Hello, This is the performance results using the "embedded" hsql database. I = ran them out of the box (unzipped the OJB 0.7.3434 src file), with no = other process running. Hardware : Intel Pentium III 1 GHz, 256 MB RAM OS: Microsoft Windows 2000 SP2 JDK: Sun 1.3.1_01 OJB: 0.7.343 DB: HSQLDB ------------------------------------------------------------- performance: [ojb] [BOOT] INFO: OJB.properties: = file:/C:/Java/ojbperftest/ojb-0.7.343/b uild/test/ojb/OJB.properties [ojb] .[performance] INFO: [ojb] [performance] INFO: inserting 10000 Objects: 68859 msec [ojb] [performance] INFO: updating 10000 Objects: 79654 msec [ojb] [performance] INFO: querying 10000 Objects: 21981 msec [ojb] [performance] INFO: querying 10000 Objects: 431 msec [ojb] [performance] INFO: fetching 10000 Objects: 7441 msec [ojb] [performance] INFO: deleting 10000 Objects: 38425 msec [ojb] [performance] INFO: [ojb] [performance] INFO: inserting 10000 Objects: 61659 msec [ojb] [performance] INFO: updating 10000 Objects: 83019 msec [ojb] [performance] INFO: querying 10000 Objects: 22352 msec [ojb] [performance] INFO: querying 10000 Objects: 411 msec [ojb] [performance] INFO: fetching 10000 Objects: 8622 msec [ojb] [performance] INFO: deleting 10000 Objects: 37604 msec [ojb] [performance] INFO: [ojb] [performance] INFO: inserting 10000 Objects: 68679 msec [ojb] [performance] INFO: updating 10000 Objects: 82068 msec [ojb] [performance] INFO: querying 10000 Objects: 21992 msec [ojb] [performance] INFO: querying 10000 Objects: 410 msec [ojb] [performance] INFO: fetching 10000 Objects: 8943 msec [ojb] [performance] INFO: deleting 10000 Objects: 37835 msec [ojb] [ojb] Time: 654.151 [ojb] [ojb] OK (1 tests) [ojb] [jdbc] [BOOT] INFO: OJB.properties: = file:/C:/Java/ojbperftest/ojb-0.7.343/b uild/test/ojb/OJB.properties [jdbc] .[performance] INFO: [jdbc] [performance] INFO: inserting 10000 Objects: 18306 msec [jdbc] [performance] INFO: updating 10000 Objects: 29653 msec [jdbc] [performance] INFO: querying 10000 Objects: 15893 msec [jdbc] [performance] INFO: querying 10000 Objects: 14551 msec [jdbc] [performance] INFO: fetching 10000 Objects: 490 msec [jdbc] [performance] INFO: deleting 10000 Objects: 9755 msec [jdbc] [performance] INFO: [jdbc] [performance] INFO: inserting 10000 Objects: 18066 msec [jdbc] [performance] INFO: updating 10000 Objects: 29001 msec [jdbc] [performance] INFO: querying 10000 Objects: 14601 msec [jdbc] [performance] INFO: querying 10000 Objects: 14571 msec [jdbc] [performance] INFO: fetching 10000 Objects: 551 msec [jdbc] [performance] INFO: deleting 10000 Objects: 9794 msec [jdbc] [performance] INFO: [jdbc] [performance] INFO: inserting 10000 Objects: 18216 msec [jdbc] [performance] INFO: updating 10000 Objects: 32197 msec [jdbc] [performance] INFO: querying 10000 Objects: 15783 msec [jdbc] [performance] INFO: querying 10000 Objects: 15722 msec [jdbc] [performance] INFO: fetching 10000 Objects: 1633 msec [jdbc] [performance] INFO: deleting 10000 Objects: 9373 msec [jdbc] [jdbc] Time: 385.254 [jdbc] [jdbc] OK (1 tests) [jdbc] BUILD SUCCESSFUL Total time: 18 minutes 41 seconds ------------------------------------------------------------- These results also look very bad, compared to what Thomas sent me for = HSQL: Mine: [ojb] Time: 654.151 [jdbc] Time: 385.254 Thomas's [ojb] Time: 17.435 [jdbc] Time: 12.065 How can this be possible???????? I ran the test (OJB + HSQL) in ANOTHER machine, a Pentium 500 MHz + = 256MB RAM, and got these also dissapointing results: performance: [ojb] [BOOT] INFO: OJB.properties: = file:/C:/ojb/build/test/ojb/OJB.propert ies [ojb] .[performance] INFO: [ojb] [performance] INFO: inserting 10000 Objects: 84774 msec [ojb] [performance] INFO: updating 10000 Objects: 94948 msec [ojb] [performance] INFO: querying 10000 Objects: 44485 msec [ojb] [performance] INFO: querying 10000 Objects: 350 msec [ojb] [performance] INFO: fetching 10000 Objects: 2643 msec [ojb] [performance] INFO: deleting 10000 Objects: 26018 msec [ojb] [performance] INFO: [ojb] [performance] INFO: inserting 10000 Objects: 81099 msec [ojb] [performance] INFO: updating 10000 Objects: 97512 msec [ojb] [performance] INFO: querying 10000 Objects: 44915 msec [ojb] [performance] INFO: querying 10000 Objects: 341 msec [ojb] [performance] INFO: fetching 10000 Objects: 3345 msec [ojb] [performance] INFO: deleting 10000 Objects: 25597 msec [ojb] [performance] INFO: [ojb] [performance] INFO: inserting 10000 Objects: 85965 msec [ojb] [performance] INFO: updating 10000 Objects: 96331 msec [ojb] [performance] INFO: querying 10000 Objects: 44264 msec [ojb] [performance] INFO: querying 10000 Objects: 341 msec [ojb] [performance] INFO: fetching 10000 Objects: 2934 msec [ojb] [performance] INFO: deleting 10000 Objects: 24806 msec [ojb] [ojb] Time: 762.521 [ojb] [ojb] OK (1 tests) [ojb] [jdbc] [BOOT] INFO: OJB.properties: = file:/C:/ojb/build/test/ojb/OJB.propert ies [jdbc] .[performance] INFO: [jdbc] [performance] INFO: inserting 10000 Objects: 20159 msec [jdbc] [performance] INFO: updating 10000 Objects: 30284 msec [jdbc] [performance] INFO: querying 10000 Objects: 21091 msec [jdbc] [performance] INFO: querying 10000 Objects: 20540 msec [jdbc] [performance] INFO: fetching 10000 Objects: 311 msec [jdbc] [performance] INFO: deleting 10000 Objects: 7821 msec [jdbc] [performance] INFO: [jdbc] [performance] INFO: inserting 10000 Objects: 24616 msec [jdbc] [performance] INFO: updating 10000 Objects: 31246 msec [jdbc] [performance] INFO: querying 10000 Objects: 20810 msec [jdbc] [performance] INFO: querying 10000 Objects: 20590 msec [jdbc] [performance] INFO: fetching 10000 Objects: 1062 msec [jdbc] [performance] INFO: deleting 10000 Objects: 7841 msec [jdbc] [performance] INFO: [jdbc] [performance] INFO: inserting 10000 Objects: 25067 msec [jdbc] [performance] INFO: updating 10000 Objects: 33348 msec [jdbc] [performance] INFO: querying 10000 Objects: 21401 msec [jdbc] [performance] INFO: querying 10000 Objects: 21822 msec [jdbc] [performance] INFO: fetching 10000 Objects: 711 msec [jdbc] [performance] INFO: deleting 10000 Objects: 8833 msec [jdbc] [jdbc] Time: 444.368 [jdbc] [jdbc] OK (1 tests) [jdbc] ---------------------------------------------------------------- Totals: [ojb] Time: 762.521 [jdbc] Time: 444.368 I ran the test in my 1GHz machine, but with OJB 0.7.325 (just to find = out if OJB had become slower): HSQL + OJB 0.7.325: -------------------------------------------------- performance: [ojb] [BOOT] INFO: OJB.properties: = file:/C:/Java/ojb-0.7.325/build/test/oj b/OJB.properties [ojb] .0 INFO [main] performance - [ojb] 43032 INFO [main] performance - inserting 10000 Objects: = 42982 msec [ojb] 94686 INFO [main] performance - updating 10000 Objects: = 51614 msec [ojb] 118440 INFO [main] performance - querying 10000 Objects: = 23724 msec [ojb] 118731 INFO [main] performance - querying 10000 Objects: = 251 msec [ojb] 124539 INFO [main] performance - fetching 10000 Objects: = 5728 msec [ojb] 146230 INFO [main] performance - deleting 10000 Objects: = 21681 msec [ojb] 146240 INFO [main] performance - [ojb] 183113 INFO [main] performance - inserting 10000 Objects: = 36873 mse c [ojb] 239294 INFO [main] performance - updating 10000 Objects: = 56141 msec [ojb] 263068 INFO [main] performance - querying 10000 Objects: = 23764 msec [ojb] 263309 INFO [main] performance - querying 10000 Objects: = 221 msec [ojb] 271400 INFO [main] performance - fetching 10000 Objects: = 8061 msec [ojb] 291709 INFO [main] performance - deleting 10000 Objects: = 20299 msec [ojb] 291719 INFO [main] performance - [ojb] 334301 INFO [main] performance - inserting 10000 Objects: = 42562 mse c [ojb] 387477 INFO [main] performance - updating 10000 Objects: = 53146 msec [ojb] 410340 INFO [main] performance - querying 10000 Objects: = 22853 msec [ojb] 410590 INFO [main] performance - querying 10000 Objects: = 240 msec [ojb] 418402 INFO [main] performance - fetching 10000 Objects: = 7802 msec [ojb] 438801 INFO [main] performance - deleting 10000 Objects: = 20389 msec [ojb] [ojb] Time: 443.167 [ojb] [ojb] OK (1 tests) [ojb] [jdbc] [BOOT] INFO: OJB.properties: = file:/C:/Java/ojb-0.7.325/build/test/oj b/OJB.properties [jdbc] .0 INFO [main] performance - [jdbc] 127333 INFO [main] performance - inserting 10000 Objects: = 17976 mse c [jdbc] 157586 INFO [main] performance - updating 10000 Objects: = 30213 msec [jdbc] 173269 INFO [main] performance - querying 10000 Objects: = 15653 msec [jdbc] 187710 INFO [main] performance - querying 10000 Objects: = 14381 msec [jdbc] 189062 INFO [main] performance - fetching 10000 Objects: = 1272 msec [jdbc] 198876 INFO [main] performance - deleting 10000 Objects: = 9804 msec [jdbc] 198886 INFO [main] performance - [jdbc] 217032 INFO [main] performance - inserting 10000 Objects: = 18096 mse c [jdbc] 244551 INFO [main] performance - updating 10000 Objects: = 27469 msec [jdbc] 259052 INFO [main] performance - querying 10000 Objects: = 14480 msec [jdbc] 273373 INFO [main] performance - querying 10000 Objects: = 14301 msec [jdbc] 274124 INFO [main] performance - fetching 10000 Objects: = 741 msec [jdbc] 283978 INFO [main] performance - deleting 10000 Objects: = 9844 msec [jdbc] 283988 INFO [main] performance - [jdbc] 302495 INFO [main] performance - inserting 10000 Objects: = 18507 mse c [jdbc] 332858 INFO [main] performance - updating 10000 Objects: = 30333 msec [jdbc] 348231 INFO [main] performance - querying 10000 Objects: = 15363 msec [jdbc] 363563 INFO [main] performance - querying 10000 Objects: = 15322 msec [jdbc] 365335 INFO [main] performance - fetching 10000 Objects: = 1732 msec [jdbc] 374789 INFO [main] performance - deleting 10000 Objects: = 9424 msec [jdbc] [jdbc] Time: 378.224 [jdbc] [jdbc] OK (1 tests) [jdbc] BUILD SUCCESSFUL Total time: 14 minutes 7 seconds -------------------------------------------------- I'm really confused here, how can I get this slow performance, not in = one, but in two differente computers, when Thomas says OJB + HSQL should = perform like this: [ojb] Time: 17.435 [jdbc] Time: 12.065 PLEASE give me a hand here, post your performance results, with OJB + = HSQL, and then with OJB + MySQL. I really need to make the system fast, or else I'll have to code = everything again, using JDBC... a nightmare. Does anybody have a clue here? I thought that I had a mysql JDBC driver = problem, but looks like the HSQL results are also slow! Does anybody = have any idea of what can I be doing wrong??? Thanks in advance, Ricardo Arguello |
From: <ubu...@ya...> - 2002-03-04 13:25:58
|
Hi all, I'm using ojb with an (existing) oracle database. There are columns of type varchar inside this database which contain (telephon-)numbers. If i try to retrieve their values, i get the hex representation of it: The database contains the String '49' and i get a java String "0x3439". Some more facts: - ojb 0.735 on Solaris 7 - oracle 8.1.7 - column definition: CC VARCHAR2(3) - Java type: String m_cc - field descriptor: <FieldDescriptor id="3"> <field.name>m_cc</field.name> <column.name>CC</column.name> <jdbc_type>VARCHAR</jdbc_type> </FieldDescriptor> Any ideas what's going on here? TIA! Uli __________________________________________________________________ Gesendet von Yahoo! Mail - http://mail.yahoo.de Ihre E-Mail noch individueller? - http://domains.yahoo.de |
From: Florian B. <bf...@fl...> - 2002-03-04 12:20:31
|
Hi, some of the .jar files in the lib directory in CVS were accitentially added in ASCII mode. When checking out on Windows platforms LF get converted to CR/LF, which corrupts those archives. I just changed the flags of those files so they are now binary and should therefore work on Windows platforms when checked out. best regards, Florian |
From: Bischof, R. <rai...@ed...> - 2002-03-04 08:06:23
|
Hi, you don't need the Nocache class to do that. Simply use MetaObjectCacheImpl.setClassCache(YOUR_CLASS_TO_CACHE, null) to tell the MetaCache not to cache any instances of this class and subclasses. But: In the current release there is a bug in MetaObjectCacheImpl.clear() which causes NullpointerExceptions when this feature is used... The bug is fixed in the attached version. cu Rainer Bischof -----Original Message----- From: syl...@be... [mailto:syl...@be...] Sent: Sonntag, 3. Marz 2002 11:40 To: obj...@li... Cc: tho...@ho... Subject: [OJB-developers] Nocache Hi, When I use Ojb with a database that can be modified by other programs I don't want some object to be read from the cache but I want Ojb to refetch them every time. I just wrote a small Nocache class that when used with the Metacache should do just that. Best regards Bertrand _______________________________________________ Objectbridge-developers mailing list Obj...@li... https://lists.sourceforge.net/lists/listinfo/objectbridge-developers |
From: <syl...@be...> - 2002-03-03 17:18:37
|
Hi Thomas I'm using Ojb to read data from a existing database I didn't design. There is a repeating case where I can't find a possibility with Ojb current mapping possibilities to map my classes with my Object. I have, up to now, used a specific RowReader, but this has a lot of disadvantage. I have to write the same code all over again and I can not use standard feature out of the box, proxy, cascade delete,... So I would like to have your opinion on the best way to implement the feature I need in OJB. Basicaly, the foreign key of the "foreign table" contains information that doesn't come from the fields of the primary table. This happens mainly in 2 cases A)the foreign table is used to store different type of information. One example could be when a inheritance hierachy is represented by storing all the base class in the same table with one column used for the type of the record. Such contruct exist a lot in existing database when the designer decided to store a lot of simple entity mainly used in lookups in the same table, currency code, language, .... In such a case, the type column is part of the primary key of the foreign table but the value for the type is not stored in the fields of the primary table, it is basically a constant. B)The foreign table store information in different language: french, english, dutch. Once again the language column is part of the pk of the foreign table but its value is not a field of the primary table, but a runtime value. Right now in ReferenceDescriptor or CollectionDescriptor you can only give a list of id of the fields used to build the foreign key. I see different possibilities here. A) We allow fake fields, they would be member of the class, but they would not map to a column in a database table, so they would not be read or saved. Their value could be set at object creation. fk_descriptor_ids could list those fake fields. B) We change the fk_descriptor_ids to allow to put not only field ids, but also member variable name, or member method, or directly some values, or any method or ... How far should we go. C) Use somethink like what is describe in mapping all classes on the same table. for the foreign table. The probem is that I don't control the value used for the type-columns, most of the time it's a number or something like EN, FR, DU. The problem is that the type column is also part of the key and indexes for the foreign column and I think that Ojb will not use that column to retreive only interresting row but will read all rows with equality on other fk fields and instantiate different object type. The indexes might not be used, too many rows will be read and too many objects will be created. I don't really like solution A. Solution B will have impact on the repository format,metadata classes and code to fetch references and collection needed to be changed. Solution C could be usefull for more flexible way to map class hierachy, but I'm not sure on how much code will be involved. It probably will have impact on the extent definition mechanism. What do you think about this. Do you think it can be added to the todo list for version 1.0? What's your preffered solution, do you have another, better one? I also think that it should be possible to have field id attribute to be anything, not just a number, like class id are. The documentation is not very clear with it, but fields id are really column number so that if there are 5 fields, valid id value are 1 2 3 4 5 (in any order). OJB dosn't really check this when reading the repository, but if you don't respect this and use 1 3 4 5 6 or 1 2 3 4 4 and reference those fields in a fk_descriptor_ids (e.g. 1 5 ),the wrong field will be used to build the indentity for the foreign object. (respectively 1 and 6 and 1 and one of the 4). BTW I don't really understand why people want to "kill" the repository file. It's only there if you want to use it. You can directly contruct the mapping with classes of the ojb.metadata package if you want to. I think that a xml repository file is very important for OJB because -It is an easy entry point for people that discover OJB. The jars file and a few text file is all that is needed to download and setup for people that just want to have a look. -In a text file you can also easely embbed comment that can help occasionnal user. -In bug reporting, it can be much easier to describe a small test case and E-mail it if it's a xml file. -Finally if the repository need to change, some smart guy can write an xsl file that will do the convertion. A visual tool is also great, and I might even try to contribute one in the future, but I think that it can be a nice idea to have it manipulate the repository.xml file. I think that using something like Jdom, you can even preserve formatting and comments without too much work if you are carrefull. If you want to use the tool directly on the java classes, we will have to change the way they work. I think that you need the java classes that represent the object before you start the mapping, the metadata classes check the existence of classes and member variables. I think it could be nice to generate the DDL needed to created the tables, we will need extra information like the size of column but it could also be nice to have the tool to generate java classes for an existing database. This is not a big contraint either because if you are not using the repository, some class within OJB can be responsible to unmarshall the mapping to xml, you can then edit it, marshall it back to java, everything is almost there, then you can unmarshall it to your prefered format. Have a good day Bertrand |
From: Jakob B. <jbr...@ho...> - 2002-03-03 16:12:02
|
hi, i used the version from the cvs-repository but started the tests from eclipse. here are the latest results. jakob ----- Original Message ----- From: "Thomas Mahler" <tho...@ho...> To: "Jakob Braeuchi" <jbr...@ho...> Cc: "Ricardo Argüello" <ri...@ya...>; "ojb" <obj...@li...> Sent: Sunday, March 03, 2002 3:40 PM Subject: Re: [OJB-developers] "performance" target results against MySql Hi Jakob, thanks for your My-SQL crosscheck! Your measurements look much more coherent than Ricardos. Jakob Braeuchi wrote: > hi, > > here are my performance results against mysql and ms-access. > where do you get the jdbc-results from ? > I think you are not using the latest build.xml. As of 0.7.343 it contains additional stuff under the performance target. (The tests should be executed 3 times and there should be executed a [ojb] and a [jdbc] version. Please send me your complete test results again! Thomas > jakob > > ----- Original Message ----- > From: "Thomas Mahler" <tho...@ho...> > To: "Ricardo Argüello" <ri...@ya...> > Cc: "Florian Bruckner" <bf...@fl...>; "ojb" > <obj...@li...> > Sent: Thursday, February 28, 2002 4:20 PM > Subject: Re: [OJB-developers] "performance" target results against MySql > > > >>Hi Ricardo, >> >><snip> >> >>Your performance results look really bad. To give you an impression that >> this is not typical for OJB I have attached a zipped html document >>containing 3 tables. >>The tables contain: >>1. your testresults >>2. my test against MS Access >>3. my test against HSQLDB >> >>The Result for HSQLDB are a bit distorted as HSQBL does most things >>inmemory. That's why it is so fast. But that's also why the OJB version >>is not that much slower (in absolute numbers) but the ratio is still 45% >> >>For MS-Access you see a more "classic" OJB effect. Native JDBC is not >>very fast. OJB is slower. But at a very reasonable ratio: 19% >> >>My experience with DB2 and ORACLE are similar, but I currently have no >>numbers available. >> >>That's why I'm really shocked by your tests. >> >> >>I have only a few possible explanations: >>1. There have been changes between 0.7.314 (the version I used) and >>0.7.343 (your version) that had major impacts on performance. I had some >>few runs on my machine that show that this isn't the case. >> >>2. The JDBC driver. People have often told me how fast MySql is. But >>when I see the results of your native JDBC tests I think it's rather >> > slow... > >>Maybe that other internal problems of the MYSQL JDBC driver lead to such >>exorbitant results. >>Maybe OJB uses certain features that are not well supported. >> >>Maybe it's a good idea to share experiences with other MYSQL / OJB users >>to share their findings and insights. Everyone is invited to post his >>performance test results! >> >>I am a bit surprised about the bad performance for primary key based >>look up (querying1 and 2). Are you sure there is a primary key defined >>for the table ? >> >>3. OJB has become slow. As you can see from my tables OJB is not "slow" >>in general. OJB has been carefully performance tuned in the past. >>But we have implemented a lot of new features that almost all have >>performance impacts. >> >>After finishing all 1.0 features I want to have a complete code >>walkthrough to implement performance improvements. >> >> >> >>> >>>The results show that direct JDBC is 62.7% faster than OJB (against >>> > MySql): > >>> [ojb] Time: 1,393.023 >>> [jdbc] Time: 874.658 >>> >>> >>>I think I found my problem.... >>> >>>:-( >>> >>> >> >> >>Mh, as mentioned above I don't believe that OJB is the only problem. >> >>I'd like to discuss about aceptable performance. Which factor would be >>acceptable for you. >>(For me even the native JDBC variant is definitely too slow). >>20%, 40% ? >> >>It's absolutely clear that an O/R layer (regardless which concrete >>product) *will allways* be slower as handcoded JDBC. >> >>You get a lot of programming ease and pay it with performance. Period. >>Of course we will work hard to minimize this overhead. >> >>I have written the performance testsuite to make people aware of the >>performance impact they have for their specific environment. >> >>I'm planning to provide a document on the performance TestSuite to help >>people understand all the numbers. >> >>best regards, >> >>Thomas >> >> >> >>------------------------------------------------------------------------ >> >>hardware : amd duron 750 , 392 mb ram >>os: win2k >>jdk: 1.4.0 >>ojb: 0.7.343 >> >>db: mysql 3.23.49 >>jdbc: mm.mysql driver 2.0.11 >> >>[BOOT] INFO: OJB.properties: file:/D:/Java/eclipse_0228/workspace/ojb-1-0/build/classes/OJB.properties >>.[performance] INFO: >>[performance] INFO: inserting 10000 Objects: 19348 msec >>[performance] INFO: updating 10000 Objects: 19548 msec >>[performance] INFO: querying 10000 Objects: 25386 msec >>[performance] INFO: querying 10000 Objects: 24465 msec >>[performance] INFO: fetching 10000 Objects: 2072 msec >>[performance] INFO: deleting 10000 Objects: 12328 msec >>[performance] INFO: >>[performance] INFO: inserting 10000 Objects: 17525 msec >>[performance] INFO: updating 10000 Objects: 18807 msec >>[performance] INFO: querying 10000 Objects: 24305 msec >>[performance] INFO: querying 10000 Objects: 22973 msec >>[performance] INFO: fetching 10000 Objects: 1833 msec >>[performance] INFO: deleting 10000 Objects: 12188 msec >> >>Time: 201.891 >> >>OK (1 tests) >> >> >>db: ms-access 2000 >>jdbc: jdbc-odbc bridge of jdk 1.4.0 >> >>[BOOT] INFO: OJB.properties: file:/D:/Java/eclipse_0228/workspace/ojb-1-0/build/classes/OJB.properties >>.[performance] INFO: >>[DEFAULT] WARN: problems with platform ojb.broker.platforms.PlatformMsAccessImpl: ojb.broker.platforms.PlatformMsAccessImpl >>[DEFAULT] WARN: OJB will use PlatformDefaultImpl instead >>[performance] INFO: inserting 10000 Objects: 20048 msec >>[performance] INFO: updating 10000 Objects: 27380 msec >>[performance] INFO: querying 10000 Objects: 19808 msec >>[performance] INFO: querying 10000 Objects: 18717 msec >>[performance] INFO: fetching 10000 Objects: 2784 msec >>[performance] INFO: deleting 10000 Objects: 16473 msec >>[performance] INFO: >>[performance] INFO: inserting 10000 Objects: 20860 msec >>[performance] INFO: updating 10000 Objects: 28251 msec >>[performance] INFO: querying 10000 Objects: 18366 msec >>[performance] INFO: querying 10000 Objects: 241 msec >>[performance] INFO: fetching 10000 Objects: 2724 msec >>[performance] INFO: deleting 10000 Objects: 17625 msec >> >>Time: 194.67 >> >>OK (1 tests) >> _______________________________________________ Objectbridge-developers mailing list Obj...@li... https://lists.sourceforge.net/lists/listinfo/objectbridge-developers |
From: Thomas M. <tho...@ho...> - 2002-03-03 14:52:07
|
Hi Florian, I had a look at your tool. I like it very much. It's already quite powerful for reverse engineering JDBC datasources. It should be made a part of the OJB Mapping tool! Is it OK for you to add it to the contributions directory until we have started with the "official" tool? Do you want to maintain the package naming at.citec... ? I would prefer to use ojb.tools.mapping or something like that. cu, Thomas Florian Bruckner wrote: > Hi, > > >> > >> > If there is no visual tool, would it be appreciated if I contributed >> > one, written using Swing and JDK 1.4.0? >> > >> >> >>Sure! OJB relies much on such contributions. We are not sponsored by a >>company or any other organisation. >> So everything (even rough code sketches, design ideas, >>contructive criticizm if definitely appreciated! >> >> > > Then I think I have something to share here. Some time ago I started writing > a small tool that visualises a database structure. It never really left the > state of a design study, its main purpose was for me to get some insight on > the DatabaseMetadata interface. As I've seen this discussion I did some > quick hacks and it is now able to generate the XML-Mapping and the related > Java-classes (going the hard way with just doing some String concatenation). > > While this code is poorly designed and without any comments it still could > maybe serve as a starting point for reverse engineering a database > structure, as this was not as easy as it seemed first. As always with JDBC, > every vendor implements the DatabaseMetadata interface differently. > > If you want to use it as a starting point or just as inspiration I could > spend some time on commenting the code and I also would be more than happy > to participate in such a project. > > best regards, > Florian > |
From: Thomas M. <tho...@ho...> - 2002-03-03 14:40:36
|
Hi, thanks for your performance tests, I will include them in my document syl...@be... wrote: > Hi, > > I wanted to have a look at the Mckoi pure java rdbms for a while. http://mckoi.com/database/ > The recent post about performance of OJB with mysql finally got me started. > > Mckoi is an open source database with a Gpl Licence and can be an alternative > to hsql wich is not very realistic for performance test because hsql keeps its data in RAM. > > Mckoi can run both in client server mode and in embedded mode. > The only difference is the url you use and the fact that you have to start the server or not. > > Mckoi was very easy to install. Just download it, unzip have a look at the example. > > Under the Mckoi home directory ( c:\java\mckoi ) I have created a ojb directory for the test. > I have copied there a db.conf file from the mckoi test directory and created a new db with the following command. > %JAVA_HOME%\bin\java -cp ..\mckoidb.jar;..\gnu-regexp-1.0.8.jar com.mckoi.runtime.McKoiDBMain -conf .\db.conf -create test test > > I then just started the db in server mode with > %JAVA_HOME%\bin\java -cp ..\mckoidb.jar;..\gnu-regexp-1.0.8.jar com.mckoi.runtime.McKoiDBMain -conf .\db.conf > > to stop the server just use > %JAVA_HOME%\bin\java -cp ..\mckoidb.jar;..\gnu-regexp-1.0.8.jar com.mckoi.runtime.McKoiDBMain -shutdown test test > > I then copied mckoidb.jar to the ojb lib directory and and adapted a few file : > swith some comment to go from the client server mode to the embedded mode > > 1) in the source\test\setup directory I modified the db-setup.sql by just adding these line to the front > > //#ifdef MCKOI > ; for mckoi (OJB default) > d com.mckoi.JDBCDriver; > o jdbc:mckoi:local://c:\java\mckoi\ojb\db.conf test test ; > ; o jdbc:mckoi://127.0.0.127 test test ; > //#endif > > 2) I then had to modify the build.xml file > > a)in the init target > > adding > > > <!-- set to -MCKOI to disable the MCKOI > specifics in db-setup.sql--> > <property name="MCKOI" value="+MCKOI"/> > > adding mckoi jar to the runtime-classpath > <property name="runtime_classpath" > value="${classpath}:${build}/test/ojb:${lib}/db2j > ava.zip:${lib}/mckoidb.jar:${lib}/hsqldb.jar:${li > b}/jta- > spec1_0_1.jar:${lib}/junit.jar:${lib}/jaxp.jar:${ > lib}/parser.jar:${lib}/xerces.jar:${lib}/antlr.ja > r"/> > > > b) changing these line in the tests target > > !! <echo message="using switches: > ${MCKOI}, ${HSQLDB}, ${ORACLE}, ${MS_ACCESS}, > ${INSTANTDB}, ${DB2}, ${POSTGRESQL}, ${MYSQL}"/> > > <java fork="no" > classname="org.hsqldb.util.CodeSwitcher" > failonerror="true" > classpath="${classpath}:${lib}/hsqldb.jar"> > <arg value="${source}/test/setup" /> > <arg value="${HSQLDB}" /> > !! <arg value="${MCKOI}" /> > > > 3) Finaly in the > src\test\ojb I modified the repository.xml file > to have mckoi as the default > > <JdbcConnectionDescriptor id="default"> > <dbms.name>mckoi</dbms.name> > > <driver.name>com.mckoi.JDBCDriver</driver.name> > <url.protocol>jdbc</url.protocol> > <!-- > <url.subprotocol>mckoi</url.subprotocol> > <url.dbalias>//127.0.0.1</url.dbalias> --> > > <url.subprotocol>mckoi:local</url.subprotocol> > > <url.dbalias>//c:/java/mckoi/ojb/db.conf</url.dba > lias> > <user.name>test</user.name> > <user.passwd>test</user.passwd> > </JdbcConnectionDescriptor> > > > > > I then just launched a build performance > > with Mckoi client server I get > > [ojb] Time: 827,049 > [jdbc] Time: 614,403 > > diff 209.645 => 25% > (see full trace below) > > with Mckoi embedded I get > > [ojb] Time: 661.711 > [jdbc] Time: 450.758 > > diff 210.953 => 31% > > with hsql I get > > [ojb] Time: 124.138 > [jdbc] Time: 76.45 > > diff 47.688 => 38% > > My machine is a PIII 700 Mhz windows 2000 java > 1.3 (jbuilder) > > It is probably possible to tweak mckoi > configuration file to have better performance, > large cache,... > The CPU is at 100% during the client server > test, both the server and the client run on the > same machine > (more cpu ,less network overhead) and just > below for the embededd test. > > The overhead between the c/s mode and embedded > mode is constant in time ~210.000. > > What I don't really understand is why it is so > high in comparison with hsql (almost 4x) ? > Anybody have an idea? > > Have a nice day > > Bertrand > > > PS: > Thomas could you adapt the build.bat file just a > little > so that if the JAVA_HOME env variable is already > set it keeps it > and adding a %1 at the and so that we can pass > the target of the build as parameter. > OK, just patched build.bat ! > @echo off > REM Please let JAVA_HOME point to your JDK base > directory > if "%JAVA_HOME%" == "" set > JAVA_HOME=C:\Programme\jdk1.3 > > set JAVA=%JAVA_HOME%\bin\java > set cp= > for %%i in (lib\*.jar) do call cp.bat %%i > set > CP=build\classes;%JAVA_HOME%\lib\tools.jar;%CP% > %JAVA% -classpath %CP% -Dant.home=lib > org.apache.tools.ant.Main %1 %2 %3 %4 %5 %6 - > buildfile build.xml %1 > > > Annexe: > > Trace Client Server Mode > > main-opt: > [javac] Compiling 20 source files to > C:\java\ojb\ojb-0.7.327\build\classes > > tests: > [move] Moving 1 files to C:\java\ojb\ojb- > 0.7.327\src\test\setup > using switches: +MCKOI, -HSQLDB, -ORACLE, - > MS_ACCESS, -INSTANTDB, -DB2, -POSTGRE > SQL, -MYSQL > . > [move] Moving 1 files to C:\java\ojb\ojb- > 0.7.327\src\test\setup > [copy] Copying 1 files to C:\java\ojb\ojb- > 0.7.327\build\test\setup > [java] [BOOT] INFO: DB url: > jdbc:mckoi://127.0.0.127 > [java] [BOOT] INFO: Driver: Mckoi JDBC > Driver > [java] [BOOT] INFO: Version: 0.70-beta > > performance: > [ojb] [BOOT] INFO: OJB.properties: > file:/C:/java/ojb/ojb-0.7.327/build/tes > t/ojb/OJB.properties > [ojb] .[performance] INFO: > [ojb] [performance] INFO: inserting 10000 > Objects: 71653 msec > [ojb] [performance] INFO: updating 10000 > Objects: 87756 msec > [ojb] [performance] INFO: querying 10000 > Objects: 39978 msec > [ojb] [performance] INFO: querying 10000 > Objects: 37624 msec > [ojb] [performance] INFO: fetching 10000 > Objects: 4917 msec > [ojb] [performance] INFO: deleting 10000 > Objects: 41139 msec > [ojb] [performance] INFO: > [ojb] [performance] INFO: inserting 10000 > Objects: 65184 msec > [ojb] [performance] INFO: updating 10000 > Objects: 85332 msec > [ojb] [performance] INFO: querying 10000 > Objects: 39406 msec > [ojb] [performance] INFO: querying 10000 > Objects: 37825 msec > [ojb] [performance] INFO: fetching 10000 > Objects: 4937 msec > [ojb] [performance] INFO: deleting 10000 > Objects: 39967 msec > [ojb] [performance] INFO: > [ojb] [performance] INFO: inserting 10000 > Objects: 66285 msec > [ojb] [performance] INFO: updating 10000 > Objects: 83841 msec > [ojb] [performance] INFO: querying 10000 > Objects: 38085 msec > [ojb] [performance] INFO: querying 10000 > Objects: 37003 msec > [ojb] [performance] INFO: fetching 10000 > Objects: 4827 msec > [ojb] [performance] INFO: deleting 10000 > Objects: 40338 msec > [ojb] > [ojb] Time: 827,049 > [ojb] > [ojb] OK (1 tests) > [ojb] > [jdbc] [BOOT] INFO: OJB.properties: > file:/C:/java/ojb/ojb-0.7.327/build/tes > t/ojb/OJB.properties > [jdbc] .[performance] INFO: > [jdbc] [performance] INFO: inserting 10000 > Objects: 45565 msec > [jdbc] [performance] INFO: updating 10000 > Objects: 60097 msec > [jdbc] [performance] INFO: querying 10000 > Objects: 32507 msec > [jdbc] [performance] INFO: querying 10000 > Objects: 32907 msec > [jdbc] [performance] INFO: fetching 10000 > Objects: 4086 msec > [jdbc] [performance] INFO: deleting 10000 > Objects: 30283 msec > [jdbc] [performance] INFO: > [jdbc] [performance] INFO: inserting 10000 > Objects: 42652 msec > [jdbc] [performance] INFO: updating 10000 > Objects: 61468 msec > [jdbc] [performance] INFO: querying 10000 > Objects: 31526 msec > [jdbc] [performance] INFO: querying 10000 > Objects: 32256 msec > [jdbc] [performance] INFO: fetching 10000 > Objects: 4406 msec > [jdbc] [performance] INFO: deleting 10000 > Objects: 30074 msec > [jdbc] [performance] INFO: > [jdbc] [performance] INFO: inserting 10000 > Objects: 43702 msec > [jdbc] [performance] INFO: updating 10000 > Objects: 63412 msec > [jdbc] [performance] INFO: querying 10000 > Objects: 30954 msec > [jdbc] [performance] INFO: querying 10000 > Objects: 32707 msec > [jdbc] [performance] INFO: fetching 10000 > Objects: 3555 msec > [jdbc] [performance] INFO: deleting 10000 > Objects: 29803 msec > [jdbc] > [jdbc] Time: 614,403 > [jdbc] > [jdbc] OK (1 tests) > [jdbc] > > init: > > prepare: > > main-opt: > [javac] Compiling 20 source files to > C:\java\ojb\ojb-0.7.327\build\classes > > tests: > [move] Moving 1 files to C:\java\ojb\ojb- > 0.7.327\src\test\setup > using switches: +MCKOI, -HSQLDB, -ORACLE, - > MS_ACCESS, -INSTANTDB, -DB2, -POSTGRE > SQL, -MYSQL > . > [move] Moving 1 files to C:\java\ojb\ojb- > 0.7.327\src\test\setup > [copy] Copying 1 files to C:\java\ojb\ojb- > 0.7.327\build\test\setup > [java] [BOOT] INFO: DB url: > jdbc:mckoi://127.0.0.127 > [java] [BOOT] INFO: Driver: Mckoi JDBC > Driver > [java] [BOOT] INFO: Version: 0.70-beta > > performance: > [ojb] [BOOT] INFO: OJB.properties: > file:/C:/java/ojb/ojb-0.7.327/build/tes > t/ojb/OJB.properties > [ojb] .[performance] INFO: > [ojb] [performance] INFO: inserting 10000 > Objects: 66045 msec > [ojb] [performance] INFO: updating 10000 > Objects: 84221 msec > [ojb] [performance] INFO: querying 10000 > Objects: 38706 msec > [ojb] [performance] INFO: querying 10000 > Objects: 36693 msec > [ojb] [performance] INFO: fetching 10000 > Objects: 4827 msec > [ojb] [performance] INFO: deleting 10000 > Objects: 40047 msec > [ojb] [performance] INFO: > [ojb] [performance] INFO: inserting 10000 > Objects: 64683 msec > [ojb] [performance] INFO: updating 10000 > Objects: 81448 msec > [ojb] [performance] INFO: querying 10000 > Objects: 36612 msec > [ojb] [performance] INFO: querying 10000 > Objects: 37374 msec > [ojb] [performance] INFO: fetching 10000 > Objects: 4556 msec > [ojb] [performance] INFO: deleting 10000 > Objects: 40749 msec > [ojb] [performance] INFO: > [ojb] [performance] INFO: inserting 10000 > Objects: 64353 msec > [ojb] [performance] INFO: updating 10000 > Objects: 82829 msec > [ojb] [performance] INFO: querying 10000 > Objects: 36853 msec > [ojb] [performance] INFO: querying 10000 > Objects: 38375 msec > [ojb] [performance] INFO: fetching 10000 > Objects: 4747 msec > [ojb] [performance] INFO: deleting 10000 > Objects: 40268 msec > [ojb] > [ojb] Time: 805,008 > [ojb] > [ojb] OK (1 tests) > [ojb] > [jdbc] [BOOT] INFO: OJB.properties: > file:/C:/java/ojb/ojb-0.7.327/build/tes > t/ojb/OJB.properties > [jdbc] .[performance] INFO: > [jdbc] [performance] INFO: inserting 10000 > Objects: 44104 msec > [jdbc] [performance] INFO: updating 10000 > Objects: 59876 msec > [jdbc] [performance] INFO: querying 10000 > Objects: 33929 msec > [jdbc] [performance] INFO: querying 10000 > Objects: 31214 msec > [jdbc] [performance] INFO: fetching 10000 > Objects: 4337 msec > [jdbc] [performance] INFO: deleting 10000 > Objects: 29863 msec > [jdbc] [performance] INFO: > [jdbc] [performance] INFO: inserting 10000 > Objects: 43042 msec > [jdbc] [performance] INFO: updating 10000 > Objects: 60296 msec > [jdbc] [performance] INFO: querying 10000 Objects: 31195 msec > [jdbc] [performance] INFO: querying 10000 Objects: 31385 msec > [jdbc] [performance] INFO: fetching 10000 Objects: 4607 msec > [jdbc] [performance] INFO: deleting 10000 Objects: 29703 msec > [jdbc] [performance] INFO: > [jdbc] [performance] INFO: inserting 10000 Objects: 43412 msec > [jdbc] [performance] INFO: updating 10000 Objects: 62470 msec > [jdbc] [performance] INFO: querying 10000 Objects: 29673 msec > [jdbc] [performance] INFO: querying 10000 Objects: 31335 msec > [jdbc] [performance] INFO: fetching 10000 Objects: 3825 msec > [jdbc] [performance] INFO: deleting 10000 Objects: 28792 msec > [jdbc] > [jdbc] Time: 604,81 > [jdbc] > [jdbc] OK (1 tests) > [jdbc] > > BUILD SUCCESSFUL > > Total time: 49 minutes 56 seconds > Appuyez sur une touche pour continuer... > > > > > > |
From: Thomas M. <tho...@ho...> - 2002-03-03 14:40:23
|
good suggestion! thanks, Thomas syl...@be... wrote: > Hi thomas > > I a recent mail you were taking about a code review to improve performance. > > I once notice that in JdbcAccess you have a static method > getJdbcType that goes thru a bunch of if, else if, and string comparison to return the > sqltype of a field. > > I think that the sqltype could be calculated when the repository is build and stored in the field > Class > instead of storing the String name of the sqltype. > > I don't know how often this method get called, so I'm not sure it will improve the performance a > lot but > it also has the advantage of discovering problems with not supported sql type as soon as the > repository is build. > (I prefer to be told about problems as soon as possible). > > Best regards > > Bertrand > > > > _______________________________________________ > Objectbridge-developers mailing list > Obj...@li... > https://lists.sourceforge.net/lists/listinfo/objectbridge-developers > > > > |
From: Thomas M. <tho...@ho...> - 2002-03-03 14:40:13
|
Hi Jakob, thanks for your My-SQL crosscheck! Your measurements look much more coherent than Ricardos. Jakob Braeuchi wrote: > hi, > > here are my performance results against mysql and ms-access. > where do you get the jdbc-results from ? > I think you are not using the latest build.xml. As of 0.7.343 it contains additional stuff under the performance target. (The tests should be executed 3 times and there should be executed a [ojb] and a [jdbc] version. Please send me your complete test results again! Thomas > jakob > > ----- Original Message ----- > From: "Thomas Mahler" <tho...@ho...> > To: "Ricardo Arg=FCello" <ri...@ya...> > Cc: "Florian Bruckner" <bf...@fl...>; "ojb" > <obj...@li...> > Sent: Thursday, February 28, 2002 4:20 PM > Subject: Re: [OJB-developers] "performance" target results against MyS= ql > > > >>Hi Ricardo, >> >><snip> >> >>Your performance results look really bad. To give you an impression th= at >> this is not typical for OJB I have attached a zipped html document >>containing 3 tables. >>The tables contain: >>1. your testresults >>2. my test against MS Access >>3. my test against HSQLDB >> >>The Result for HSQLDB are a bit distorted as HSQBL does most things >>inmemory. That's why it is so fast. But that's also why the OJB versio= n >>is not that much slower (in absolute numbers) but the ratio is still 4= 5% >> >>For MS-Access you see a more "classic" OJB effect. Native JDBC is not >>very fast. OJB is slower. But at a very reasonable ratio: 19% >> >>My experience with DB2 and ORACLE are similar, but I currently have no >>numbers available. >> >>That's why I'm really shocked by your tests. >> >> >>I have only a few possible explanations: >>1. There have been changes between 0.7.314 (the version I used) and >>0.7.343 (your version) that had major impacts on performance. I had so= me >>few runs on my machine that show that this isn't the case. >> >>2. The JDBC driver. People have often told me how fast MySql is. But >>when I see the results of your native JDBC tests I think it's rather >> > slow... > >>Maybe that other internal problems of the MYSQL JDBC driver lead to su= ch >>exorbitant results. >>Maybe OJB uses certain features that are not well supported. >> >>Maybe it's a good idea to share experiences with other MYSQL / OJB use= rs >>to share their findings and insights. Everyone is invited to post his >>performance test results! >> >>I am a bit surprised about the bad performance for primary key based >>look up (querying1 and 2). Are you sure there is a primary key defined >>for the table ? >> >>3. OJB has become slow. As you can see from my tables OJB is not "slow= " >>in general. OJB has been carefully performance tuned in the past. >>But we have implemented a lot of new features that almost all have >>performance impacts. >> >>After finishing all 1.0 features I want to have a complete code >>walkthrough to implement performance improvements. >> >> >> >>> >>>The results show that direct JDBC is 62.7% faster than OJB (against >>> > MySql): > >>> [ojb] Time: 1,393.023 >>> [jdbc] Time: 874.658 >>> >>> >>>I think I found my problem.... >>> >>>:-( >>> >>> >> >> >>Mh, as mentioned above I don't believe that OJB is the only problem. >> >>I'd like to discuss about aceptable performance. Which factor would be >>acceptable for you. >>(For me even the native JDBC variant is definitely too slow). >>20%, 40% ? >> >>It's absolutely clear that an O/R layer (regardless which concrete >>product) *will allways* be slower as handcoded JDBC. >> >>You get a lot of programming ease and pay it with performance. Period. >>Of course we will work hard to minimize this overhead. >> >>I have written the performance testsuite to make people aware of the >>performance impact they have for their specific environment. >> >>I'm planning to provide a document on the performance TestSuite to hel= p >>people understand all the numbers. >> >>best regards, >> >>Thomas >> >> >> >>----------------------------------------------------------------------= -- >> >>hardware : amd duron 750 , 392 mb ram >>os: win2k >>jdk: 1.4.0 >>ojb: 0.7.343 >> >>db: mysql 3.23.49 >>jdbc: mm.mysql driver 2.0.11 >> >>[BOOT] INFO: OJB.properties:=20 file:/D:/Java/eclipse_0228/workspace/ojb-1-0/build/classes/OJB.properties >>.[performance] INFO: >>[performance] INFO: inserting 10000 Objects: 19348 msec >>[performance] INFO: updating 10000 Objects: 19548 msec >>[performance] INFO: querying 10000 Objects: 25386 msec >>[performance] INFO: querying 10000 Objects: 24465 msec >>[performance] INFO: fetching 10000 Objects: 2072 msec >>[performance] INFO: deleting 10000 Objects: 12328 msec >>[performance] INFO: >>[performance] INFO: inserting 10000 Objects: 17525 msec >>[performance] INFO: updating 10000 Objects: 18807 msec >>[performance] INFO: querying 10000 Objects: 24305 msec >>[performance] INFO: querying 10000 Objects: 22973 msec >>[performance] INFO: fetching 10000 Objects: 1833 msec >>[performance] INFO: deleting 10000 Objects: 12188 msec >> >>Time: 201.891 >> >>OK (1 tests) >> >> >>db: ms-access 2000 >>jdbc: jdbc-odbc bridge of jdk 1.4.0 >> >>[BOOT] INFO: OJB.properties:=20 file:/D:/Java/eclipse_0228/workspace/ojb-1-0/build/classes/OJB.properties >>.[performance] INFO: >>[DEFAULT] WARN: problems with platform=20 ojb.broker.platforms.PlatformMsAccessImpl:=20 ojb.broker.platforms.PlatformMsAccessImpl >>[DEFAULT] WARN: OJB will use PlatformDefaultImpl instead >>[performance] INFO: inserting 10000 Objects: 20048 msec >>[performance] INFO: updating 10000 Objects: 27380 msec >>[performance] INFO: querying 10000 Objects: 19808 msec >>[performance] INFO: querying 10000 Objects: 18717 msec >>[performance] INFO: fetching 10000 Objects: 2784 msec >>[performance] INFO: deleting 10000 Objects: 16473 msec >>[performance] INFO: >>[performance] INFO: inserting 10000 Objects: 20860 msec >>[performance] INFO: updating 10000 Objects: 28251 msec >>[performance] INFO: querying 10000 Objects: 18366 msec >>[performance] INFO: querying 10000 Objects: 241 msec >>[performance] INFO: fetching 10000 Objects: 2724 msec >>[performance] INFO: deleting 10000 Objects: 17625 msec >> >>Time: 194.67 >> >>OK (1 tests) >> |
From: Thomas M. <tho...@ho...> - 2002-03-03 14:39:55
|
Hi Jakob, I think nativeSQL() can be dropped ! Thomas Jakob Braeuchi wrote: > hi, > > i made some tests with my sample application using ms-access over jdbc-odbc. > when using proxy collections the count-statement fails with the following > exception: > > java.lang.NullPointerException > at > sun.jdbc.odbc.JdbcOdbcPreparedStatement.clearParameter(JdbcOdbcPreparedState > ment.java:1026) > at > sun.jdbc.odbc.JdbcOdbcPreparedStatement.setInt(JdbcOdbcPreparedStatement.jav > a:520) > at > sun.jdbc.odbc.JdbcOdbcPreparedStatement.setObject(JdbcOdbcPreparedStatement. > java:1133) > at > sun.jdbc.odbc.JdbcOdbcPreparedStatement.setObject(JdbcOdbcPreparedStatement. > java:1077) > at > sun.jdbc.odbc.JdbcOdbcPreparedStatement.setObject(JdbcOdbcPreparedStatement. > java:1068) > at JDBCTest.main(JDBCTest.java:34) > > i was digging a little bit deeper and found the reason: > > jdbc-odbc does not like the prepare statement using nativeSQL() in > StatementsForClass::prepareStatement(): > > ... > if (!FORCEJDBC1_0) > { > // result = connection.prepareStatement(connection.nativeSQL(sql), TYPE, > CONCUR); // fails with jdbc-odbc > result = connection.prepareStatement(sql, TYPE, CONCUR); > } > else > { > result = connection.prepareStatement(connection.nativeSQL(sql)); > } > ... > > i successfully ran the tests without nativeSQL(). so why is nativeSQL() used > here ? > > thanks > jakob > > _______________________________________________ > Objectbridge-developers mailing list > Obj...@li... > https://lists.sourceforge.net/lists/listinfo/objectbridge-developers > > > > |
From: <syl...@be...> - 2002-03-03 10:59:05
|
Hi thomas I a recent mail you were taking about a code review to improve performance. I once notice that in JdbcAccess you have a static method getJdbcType that goes thru a bunch of if, else if, and string comparison to return the sqltype of a field. I think that the sqltype could be calculated when the repository is build and stored in the field Class instead of storing the String name of the sqltype. I don't know how often this method get called, so I'm not sure it will improve the performance a lot but it also has the advantage of discovering problems with not supported sql type as soon as the repository is build. (I prefer to be told about problems as soon as possible). Best regards Bertrand |
From: <syl...@be...> - 2002-03-03 10:43:03
|
The following section of this message contains a file attachment prepared for transmission using the Internet MIME message format. If you are using Pegasus Mail, or any another MIME-compliant system, you should be able to save it or view it from within your mailer. If you cannot, please ask your system administrator for assistance. ---- File information ----------- File: NoCache.java Date: 3 Mar 2002, 11:38 Size: 1367 bytes. Type: Unknown |
From: <syl...@be...> - 2002-03-03 10:43:03
|
Hi, When I use Ojb with a database that can be modified by other programs I don't want some object to be read from the cache but I want Ojb to refetch them every time. I just wrote a small Nocache class that when used with the Metacache should do just that. Best regards Bertrand |
From: <syl...@be...> - 2002-03-03 10:36:54
|
Hi, I wanted to have a look at the Mckoi pure java rdbms for a while. http://mckoi.com/database/ The recent post about performance of OJB with mysql finally got me started. Mckoi is an open source database with a Gpl Licence and can be an alternative to hsql wich is not very realistic for performance test because hsql keeps its data in RAM. Mckoi can run both in client server mode and in embedded mode. The only difference is the url you use and the fact that you have to start the server or not. Mckoi was very easy to install. Just download it, unzip have a look at the example. Under the Mckoi home directory ( c:\java\mckoi ) I have created a ojb directory for the test. I have copied there a db.conf file from the mckoi test directory and created a new db with the following command. %JAVA_HOME%\bin\java -cp ..\mckoidb.jar;..\gnu-regexp-1.0.8.jar com.mckoi.runtime.McKoiDBMain -conf .\db.conf -create test test I then just started the db in server mode with %JAVA_HOME%\bin\java -cp ..\mckoidb.jar;..\gnu-regexp-1.0.8.jar com.mckoi.runtime.McKoiDBMain -conf .\db.conf to stop the server just use %JAVA_HOME%\bin\java -cp ..\mckoidb.jar;..\gnu-regexp-1.0.8.jar com.mckoi.runtime.McKoiDBMain -shutdown test test I then copied mckoidb.jar to the ojb lib directory and and adapted a few file : swith some comment to go from the client server mode to the embedded mode 1) in the source\test\setup directory I modified the db-setup.sql by just adding these line to the front //#ifdef MCKOI ; for mckoi (OJB default) d com.mckoi.JDBCDriver; o jdbc:mckoi:local://c:\java\mckoi\ojb\db.conf test test ; ; o jdbc:mckoi://127.0.0.127 test test ; //#endif 2) I then had to modify the build.xml file a)in the init target adding <!-- set to -MCKOI to disable the MCKOI specifics in db-setup.sql--> <property name="MCKOI" value="+MCKOI"/> adding mckoi jar to the runtime-classpath <property name="runtime_classpath" value="${classpath}:${build}/test/ojb:${lib}/db2j ava.zip:${lib}/mckoidb.jar:${lib}/hsqldb.jar:${li b}/jta- spec1_0_1.jar:${lib}/junit.jar:${lib}/jaxp.jar:${ lib}/parser.jar:${lib}/xerces.jar:${lib}/antlr.ja r"/> b) changing these line in the tests target !! <echo message="using switches: ${MCKOI}, ${HSQLDB}, ${ORACLE}, ${MS_ACCESS}, ${INSTANTDB}, ${DB2}, ${POSTGRESQL}, ${MYSQL}"/> <java fork="no" classname="org.hsqldb.util.CodeSwitcher" failonerror="true" classpath="${classpath}:${lib}/hsqldb.jar"> <arg value="${source}/test/setup" /> <arg value="${HSQLDB}" /> !! <arg value="${MCKOI}" /> 3) Finaly in the src\test\ojb I modified the repository.xml file to have mckoi as the default <JdbcConnectionDescriptor id="default"> <dbms.name>mckoi</dbms.name> <driver.name>com.mckoi.JDBCDriver</driver.name> <url.protocol>jdbc</url.protocol> <!-- <url.subprotocol>mckoi</url.subprotocol> <url.dbalias>//127.0.0.1</url.dbalias> --> <url.subprotocol>mckoi:local</url.subprotocol> <url.dbalias>//c:/java/mckoi/ojb/db.conf</url.dba lias> <user.name>test</user.name> <user.passwd>test</user.passwd> </JdbcConnectionDescriptor> I then just launched a build performance with Mckoi client server I get [ojb] Time: 827,049 [jdbc] Time: 614,403 diff 209.645 => 25% (see full trace below) with Mckoi embedded I get [ojb] Time: 661.711 [jdbc] Time: 450.758 diff 210.953 => 31% with hsql I get [ojb] Time: 124.138 [jdbc] Time: 76.45 diff 47.688 => 38% My machine is a PIII 700 Mhz windows 2000 java 1.3 (jbuilder) It is probably possible to tweak mckoi configuration file to have better performance, large cache,... The CPU is at 100% during the client server test, both the server and the client run on the same machine (more cpu ,less network overhead) and just below for the embededd test. The overhead between the c/s mode and embedded mode is constant in time ~210.000. What I don't really understand is why it is so high in comparison with hsql (almost 4x) ? Anybody have an idea? Have a nice day Bertrand PS: Thomas could you adapt the build.bat file just a little so that if the JAVA_HOME env variable is already set it keeps it and adding a %1 at the and so that we can pass the target of the build as parameter. @echo off REM Please let JAVA_HOME point to your JDK base directory if "%JAVA_HOME%" == "" set JAVA_HOME=C:\Programme\jdk1.3 set JAVA=%JAVA_HOME%\bin\java set cp= for %%i in (lib\*.jar) do call cp.bat %%i set CP=build\classes;%JAVA_HOME%\lib\tools.jar;%CP% %JAVA% -classpath %CP% -Dant.home=lib org.apache.tools.ant.Main %1 %2 %3 %4 %5 %6 - buildfile build.xml %1 Annexe: Trace Client Server Mode main-opt: [javac] Compiling 20 source files to C:\java\ojb\ojb-0.7.327\build\classes tests: [move] Moving 1 files to C:\java\ojb\ojb- 0.7.327\src\test\setup using switches: +MCKOI, -HSQLDB, -ORACLE, - MS_ACCESS, -INSTANTDB, -DB2, -POSTGRE SQL, -MYSQL . [move] Moving 1 files to C:\java\ojb\ojb- 0.7.327\src\test\setup [copy] Copying 1 files to C:\java\ojb\ojb- 0.7.327\build\test\setup [java] [BOOT] INFO: DB url: jdbc:mckoi://127.0.0.127 [java] [BOOT] INFO: Driver: Mckoi JDBC Driver [java] [BOOT] INFO: Version: 0.70-beta performance: [ojb] [BOOT] INFO: OJB.properties: file:/C:/java/ojb/ojb-0.7.327/build/tes t/ojb/OJB.properties [ojb] .[performance] INFO: [ojb] [performance] INFO: inserting 10000 Objects: 71653 msec [ojb] [performance] INFO: updating 10000 Objects: 87756 msec [ojb] [performance] INFO: querying 10000 Objects: 39978 msec [ojb] [performance] INFO: querying 10000 Objects: 37624 msec [ojb] [performance] INFO: fetching 10000 Objects: 4917 msec [ojb] [performance] INFO: deleting 10000 Objects: 41139 msec [ojb] [performance] INFO: [ojb] [performance] INFO: inserting 10000 Objects: 65184 msec [ojb] [performance] INFO: updating 10000 Objects: 85332 msec [ojb] [performance] INFO: querying 10000 Objects: 39406 msec [ojb] [performance] INFO: querying 10000 Objects: 37825 msec [ojb] [performance] INFO: fetching 10000 Objects: 4937 msec [ojb] [performance] INFO: deleting 10000 Objects: 39967 msec [ojb] [performance] INFO: [ojb] [performance] INFO: inserting 10000 Objects: 66285 msec [ojb] [performance] INFO: updating 10000 Objects: 83841 msec [ojb] [performance] INFO: querying 10000 Objects: 38085 msec [ojb] [performance] INFO: querying 10000 Objects: 37003 msec [ojb] [performance] INFO: fetching 10000 Objects: 4827 msec [ojb] [performance] INFO: deleting 10000 Objects: 40338 msec [ojb] [ojb] Time: 827,049 [ojb] [ojb] OK (1 tests) [ojb] [jdbc] [BOOT] INFO: OJB.properties: file:/C:/java/ojb/ojb-0.7.327/build/tes t/ojb/OJB.properties [jdbc] .[performance] INFO: [jdbc] [performance] INFO: inserting 10000 Objects: 45565 msec [jdbc] [performance] INFO: updating 10000 Objects: 60097 msec [jdbc] [performance] INFO: querying 10000 Objects: 32507 msec [jdbc] [performance] INFO: querying 10000 Objects: 32907 msec [jdbc] [performance] INFO: fetching 10000 Objects: 4086 msec [jdbc] [performance] INFO: deleting 10000 Objects: 30283 msec [jdbc] [performance] INFO: [jdbc] [performance] INFO: inserting 10000 Objects: 42652 msec [jdbc] [performance] INFO: updating 10000 Objects: 61468 msec [jdbc] [performance] INFO: querying 10000 Objects: 31526 msec [jdbc] [performance] INFO: querying 10000 Objects: 32256 msec [jdbc] [performance] INFO: fetching 10000 Objects: 4406 msec [jdbc] [performance] INFO: deleting 10000 Objects: 30074 msec [jdbc] [performance] INFO: [jdbc] [performance] INFO: inserting 10000 Objects: 43702 msec [jdbc] [performance] INFO: updating 10000 Objects: 63412 msec [jdbc] [performance] INFO: querying 10000 Objects: 30954 msec [jdbc] [performance] INFO: querying 10000 Objects: 32707 msec [jdbc] [performance] INFO: fetching 10000 Objects: 3555 msec [jdbc] [performance] INFO: deleting 10000 Objects: 29803 msec [jdbc] [jdbc] Time: 614,403 [jdbc] [jdbc] OK (1 tests) [jdbc] init: prepare: main-opt: [javac] Compiling 20 source files to C:\java\ojb\ojb-0.7.327\build\classes tests: [move] Moving 1 files to C:\java\ojb\ojb- 0.7.327\src\test\setup using switches: +MCKOI, -HSQLDB, -ORACLE, - MS_ACCESS, -INSTANTDB, -DB2, -POSTGRE SQL, -MYSQL . [move] Moving 1 files to C:\java\ojb\ojb- 0.7.327\src\test\setup [copy] Copying 1 files to C:\java\ojb\ojb- 0.7.327\build\test\setup [java] [BOOT] INFO: DB url: jdbc:mckoi://127.0.0.127 [java] [BOOT] INFO: Driver: Mckoi JDBC Driver [java] [BOOT] INFO: Version: 0.70-beta performance: [ojb] [BOOT] INFO: OJB.properties: file:/C:/java/ojb/ojb-0.7.327/build/tes t/ojb/OJB.properties [ojb] .[performance] INFO: [ojb] [performance] INFO: inserting 10000 Objects: 66045 msec [ojb] [performance] INFO: updating 10000 Objects: 84221 msec [ojb] [performance] INFO: querying 10000 Objects: 38706 msec [ojb] [performance] INFO: querying 10000 Objects: 36693 msec [ojb] [performance] INFO: fetching 10000 Objects: 4827 msec [ojb] [performance] INFO: deleting 10000 Objects: 40047 msec [ojb] [performance] INFO: [ojb] [performance] INFO: inserting 10000 Objects: 64683 msec [ojb] [performance] INFO: updating 10000 Objects: 81448 msec [ojb] [performance] INFO: querying 10000 Objects: 36612 msec [ojb] [performance] INFO: querying 10000 Objects: 37374 msec [ojb] [performance] INFO: fetching 10000 Objects: 4556 msec [ojb] [performance] INFO: deleting 10000 Objects: 40749 msec [ojb] [performance] INFO: [ojb] [performance] INFO: inserting 10000 Objects: 64353 msec [ojb] [performance] INFO: updating 10000 Objects: 82829 msec [ojb] [performance] INFO: querying 10000 Objects: 36853 msec [ojb] [performance] INFO: querying 10000 Objects: 38375 msec [ojb] [performance] INFO: fetching 10000 Objects: 4747 msec [ojb] [performance] INFO: deleting 10000 Objects: 40268 msec [ojb] [ojb] Time: 805,008 [ojb] [ojb] OK (1 tests) [ojb] [jdbc] [BOOT] INFO: OJB.properties: file:/C:/java/ojb/ojb-0.7.327/build/tes t/ojb/OJB.properties [jdbc] .[performance] INFO: [jdbc] [performance] INFO: inserting 10000 Objects: 44104 msec [jdbc] [performance] INFO: updating 10000 Objects: 59876 msec [jdbc] [performance] INFO: querying 10000 Objects: 33929 msec [jdbc] [performance] INFO: querying 10000 Objects: 31214 msec [jdbc] [performance] INFO: fetching 10000 Objects: 4337 msec [jdbc] [performance] INFO: deleting 10000 Objects: 29863 msec [jdbc] [performance] INFO: [jdbc] [performance] INFO: inserting 10000 Objects: 43042 msec [jdbc] [performance] INFO: updating 10000 Objects: 60296 msec [jdbc] [performance] INFO: querying 10000 Objects: 31195 msec [jdbc] [performance] INFO: querying 10000 Objects: 31385 msec [jdbc] [performance] INFO: fetching 10000 Objects: 4607 msec [jdbc] [performance] INFO: deleting 10000 Objects: 29703 msec [jdbc] [performance] INFO: [jdbc] [performance] INFO: inserting 10000 Objects: 43412 msec [jdbc] [performance] INFO: updating 10000 Objects: 62470 msec [jdbc] [performance] INFO: querying 10000 Objects: 29673 msec [jdbc] [performance] INFO: querying 10000 Objects: 31335 msec [jdbc] [performance] INFO: fetching 10000 Objects: 3825 msec [jdbc] [performance] INFO: deleting 10000 Objects: 28792 msec [jdbc] [jdbc] Time: 604,81 [jdbc] [jdbc] OK (1 tests) [jdbc] BUILD SUCCESSFUL Total time: 49 minutes 56 seconds Appuyez sur une touche pour continuer... |
From: <syl...@be...> - 2002-03-03 10:36:41
|
The following section of this message contains a file attachment prepared for transmission using the Internet MIME message format. If you are using Pegasus Mail, or any another MIME-compliant system, you should be able to save it or view it from within your mailer. If you cannot, please ask your system administrator for assistance. ---- File information ----------- File: db-setup.sql Date: 3 Mar 2002, 10:43 Size: 17239 bytes. Type: Unknown |
From: <syl...@be...> - 2002-03-03 10:36:38
|
The following section of this message contains a file attachment prepared for transmission using the Internet MIME message format. If you are using Pegasus Mail, or any another MIME-compliant system, you should be able to save it or view it from within your mailer. If you cannot, please ask your system administrator for assistance. ---- File information ----------- File: build.xml Date: 2 Mar 2002, 17:41 Size: 17683 bytes. Type: Unknown |
From: <syl...@be...> - 2002-03-03 10:36:35
|
The following section of this message contains a file attachment prepared for transmission using the Internet MIME message format. If you are using Pegasus Mail, or any another MIME-compliant system, you should be able to save it or view it from within your mailer. If you cannot, please ask your system administrator for assistance. ---- File information ----------- File: repository.xml Date: 3 Mar 2002, 10:43 Size: 54545 bytes. Type: Unknown |
From: Jakob B. <jbr...@ho...> - 2002-03-02 19:38:21
|
hi, here are my performance results against mysql and ms-access. where do you get the jdbc-results from ? jakob ----- Original Message ----- From: "Thomas Mahler" <tho...@ho...> To: "Ricardo Argüello" <ri...@ya...> Cc: "Florian Bruckner" <bf...@fl...>; "ojb" <obj...@li...> Sent: Thursday, February 28, 2002 4:20 PM Subject: Re: [OJB-developers] "performance" target results against MySql > Hi Ricardo, > > <snip> > > Your performance results look really bad. To give you an impression that > this is not typical for OJB I have attached a zipped html document > containing 3 tables. > The tables contain: > 1. your testresults > 2. my test against MS Access > 3. my test against HSQLDB > > The Result for HSQLDB are a bit distorted as HSQBL does most things > inmemory. That's why it is so fast. But that's also why the OJB version > is not that much slower (in absolute numbers) but the ratio is still 45% > > For MS-Access you see a more "classic" OJB effect. Native JDBC is not > very fast. OJB is slower. But at a very reasonable ratio: 19% > > My experience with DB2 and ORACLE are similar, but I currently have no > numbers available. > > That's why I'm really shocked by your tests. > > > I have only a few possible explanations: > 1. There have been changes between 0.7.314 (the version I used) and > 0.7.343 (your version) that had major impacts on performance. I had some > few runs on my machine that show that this isn't the case. > > 2. The JDBC driver. People have often told me how fast MySql is. But > when I see the results of your native JDBC tests I think it's rather slow... > Maybe that other internal problems of the MYSQL JDBC driver lead to such > exorbitant results. > Maybe OJB uses certain features that are not well supported. > > Maybe it's a good idea to share experiences with other MYSQL / OJB users > to share their findings and insights. Everyone is invited to post his > performance test results! > > I am a bit surprised about the bad performance for primary key based > look up (querying1 and 2). Are you sure there is a primary key defined > for the table ? > > 3. OJB has become slow. As you can see from my tables OJB is not "slow" > in general. OJB has been carefully performance tuned in the past. > But we have implemented a lot of new features that almost all have > performance impacts. > > After finishing all 1.0 features I want to have a complete code > walkthrough to implement performance improvements. > > > > > > > > The results show that direct JDBC is 62.7% faster than OJB (against MySql): > > > > [ojb] Time: 1,393.023 > > [jdbc] Time: 874.658 > > > > > > I think I found my problem.... > > > > :-( > > > > > > Mh, as mentioned above I don't believe that OJB is the only problem. > > I'd like to discuss about aceptable performance. Which factor would be > acceptable for you. > (For me even the native JDBC variant is definitely too slow). > 20%, 40% ? > > It's absolutely clear that an O/R layer (regardless which concrete > product) *will allways* be slower as handcoded JDBC. > > You get a lot of programming ease and pay it with performance. Period. > Of course we will work hard to minimize this overhead. > > I have written the performance testsuite to make people aware of the > performance impact they have for their specific environment. > > I'm planning to provide a document on the performance TestSuite to help > people understand all the numbers. > > best regards, > > Thomas > |
From: Thomas M. <tho...@ho...> - 2002-03-02 15:11:08
|
Hi Ricardo, OJB ships with support for SQL Server 2000. Just enable the flag MSSQLSERVER2000 in build.xml. (Follow the=20 documentation in http://objectbridge.sf.net/rdbms-support.html) Then edit the SQL Server url entries in db-setup.sql an repository.xml hth, Thomas Ricardo Arg=FCello wrote: > Hello, >=20 > Because of the performance problems I've had with MySQL (maybe it's a m= m.mysql JDBC driver issue, but I have no time to make more tests! My user= s are gonna kill me!), I'll try to import my tables to a MS SQL Server 20= 00 here in my office. >=20 > I downloaded the free JDBC drivers here: > http://www.microsoft.com/sql/downloads/2000/jdbc.asp >=20 > (Note: the .exe installer doesn't work, just download the .tar version,= and use the 3 jars from the lib directory) >=20 > Question: > How can I specify the MS driver in the repository.xml file? > There is no <dbms.name>MSSQL</dbms.name> entry in the documentation. > > Does anybody has experience using OJB + MSSQL 2k? >=20 > Thanks in advance, >=20 > Ricardo Arguello >=20 >=20 >=20 >=20 > _______________________________________________ > Objectbridge-developers mailing list > Obj...@li... > https://lists.sourceforge.net/lists/listinfo/objectbridge-developers >=20 >=20 >=20 >=20 |
From: Darren S. <dsy...@ci...> - 2002-03-02 12:47:55
|
Here's how to configure the MS drivers within the repository: <JdbcConnectionDescriptor id=3D"default"> <dbms.name>Testdb</dbms.name> <driver.name>com.microsoft.jdbc.sqlserver.SQLServerDriver</driver.nam= e> <url.protocol>jdbc</url.protocol> <url.subprotocol>microsoft:sqlserver</url.subprotocol> <url.dbalias>//DEV-IRIS:1433;DatabaseName=3DTestdb</url.dbalias> <user.name>SQLAuth</user.name> <user.passwd>password</user.passwd> </JdbcConnectionDescriptor> --> The url alias format is: //host:port;DatabaseName=3DTestdb host =3D the database server machine name. Port is typically the default= and finally the database name. You may also need the SelectMethod=3Dcursor - this allows multiple object= s to be opened on the connection - i.e. you can perform both a select and upda= te within a transaction on the same connection. You can specify this option= on the url.dbalias element: <url.dbalias>//DEV-IRIS:1433;DatabaseName=3DTestdb;SelectMethod=3Dcursor<= /url.db alias> Darren ----- Original Message ----- From: "Ricardo Arg=FCello" <ri...@ya...> To: "Objectbridge (E-Mail)" <obj...@li...= t> Sent: Friday, March 01, 2002 11:48 PM Subject: [OJB-developers] OJB + M$ JDBC drivers ? Hello, Because of the performance problems I've had with MySQL (maybe it's a mm.mysql JDBC driver issue, but I have no time to make more tests! My use= rs are gonna kill me!), I'll try to import my tables to a MS SQL Server 2000 here in my office. I downloaded the free JDBC drivers here: http://www.microsoft.com/sql/downloads/2000/jdbc.asp (Note: the .exe installer doesn't work, just download the .tar version, a= nd use the 3 jars from the lib directory) Question: How can I specify the MS driver in the repository.xml file? There is no <dbms.name>MSSQL</dbms.name> entry in the documentation. Does anybody has experience using OJB + MSSQL 2k? Thanks in advance, Ricardo Arguello _______________________________________________ Objectbridge-developers mailing list Obj...@li... https://lists.sourceforge.net/lists/listinfo/objectbridge-developers |