![]() |
![]() |
|
| Index | Recent Threads | Unanswered Threads | Who's Online | Help |
|
|
| No member browsing this thread |
|
Thread Status: Active Total posts in this thread: 5
|
|
| Author |
|
|
Expert Belgium Joined: Mar 12, 2004 Post Count: 2991 Status: Offline |
Link to article ---------------------------------------- Erik Bengtson ![]() |
||
|
|
Expert UK Joined: Mar 13, 2004 Post Count: 5686 Status: Offline |
I replied to the author some time ago Page 1 "JPOX JDO 1.2" ? JPOX implements JDO1/JDO2 yes, but it also implements JPA1 ... and we have never used the name "JPOX JDO" in the last year. Version 1.2 is not out yet. You mean 1.1.6? (most recent production release) ? or 1.2.0-beta-1 ? Page 2 JPOX has "log4j" as a dependency. This is optional and if using JDK1.4+ you would have had logging via java.util.logging otherwise. You have "c3p0" for Hibernate (and so are using connection pooling) yet you dont for JPOX (and so arent for JPOX). This will significantly impact any performance! Page 4 I've seen many benchmarks showing JPOX way ahead of Hibernate on updates (never seen anything to the contrary). On INSERTs I've occasionally seen Hibernate faster (since it has batching enabled, whereas you have to wait for a later version of JPOX for that). As always there are reasons for differences between Hibernate and JPOX when they have the same functionality available ... JPOX uses the byte-code enhancement process and avoids reflection and so is faster in many areas. I don't see this mentioned and would have been good to see it as the reason why bytecode enhancement is used . What you could have done in the performance section is try to address what you did to get those performance results. JPOX and Hibernate have much configuration that can be done and these can completely change the performance (and I mean completely). Again, the comment about connection pooling (above). Page 6 "JDO takes a different approach. It allows lazy loading, but does not load anything into the lazily loaded field like addresses. In fact, if you access the property directly, you will see that the lazy loaded field would contain null. This can cause some issues if you don’t properly access the data with getters and setters:" Access the data from where ? another class that you didn't bother marking as "PersistenceAware" ? If you mark any class that accesses fields directly as "PersistenceAware" then you have NO issue. ---------------------------------------- -Andy ![]() ![]() |
||
|
|
Expert Belgium Joined: Mar 12, 2004 Post Count: 2991 Status: Offline |
JDO is the only framework that has oscillating performance over multiple iterations probably because of the lack of connection pooling ---------------------------------------- Erik Bengtson ![]() |
||
|
|
Expert Australia Joined: Nov 24, 2005 Post Count: 706 Status: Offline |
JDO is the only framework that has oscillating performance over multiple iterations probably because of the lack of connection pooling Interesting results in Table 7 - even with no connection pooling JPOX still beats Hibernate. Imagine if they had tested JPOX without shoving potatoes up its exhaust pipe and pulling out half of it's spark plug leads. Table 7 also seems to demonstrate, in a practical way, the performance "glass wall" that reflection based technologies can't pass through. Everyone knows this to be the case "intuitively" but it's interesting to see it demonstrated so clearly. Now if the benchmarker could just turn on JPOX connection pooling and run the tests again... ---------------------------------------- Chris Colman http://visualclassworks.com Javelin: Visual modeling & coding with automatic JDO 2/DataNucleus meta data generation. http://expojo.com expojo: Simple dependency injection and exposed POJO domain model pattern |
||
|
|
Member Joined: Aug 8, 2007 Post Count: 55 Status: Offline |
Andy, so did the author of the article ever respond after you voiced your concerns to him? I'm guessing he didn't probably because he knew he screwed up and didn't want to admit it. |
||
|
|
|
|
|
Current timezone is GMT May 17, 2012 11:39:34 AM |