Re: [OJB-developers] "performance" target results against MySql
Brought to you by:
thma
From: Thomas M. <tho...@ho...> - 2002-02-28 15:38:02
|
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 |