You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cayenne.apache.org by Andrei Ionescu <ai...@yahoo.com> on 2009/06/26 13:03:50 UTC

Poleposition for Cayenne?

Would project Poleposition:
http://sourceforge.net/projects/polepos
make sense for Cayenne (ORMs) to compare it's speed with other ORMs 
(mainly Hibernate) ?

I saw that the main purpose of Poleposition is DBs, but it looks like 
it's used even by Object Oriented databases:
http://sourceforge.net/project/showfiles.php?group_id=179124&package_id=255373

so for ORMs there are "circuits" that could fit too (e.g. Hibernate and 
  JDO already have poleposition stats).

Or was Poleposition already used to benchmark Cayenne against other ORMs 
(I couldn't find reports for it)?

Thank you in advance,

Andrei.
P.S. such a generated report PDF(e.g. like the one above from Neodatis) 
would be a very convincing argument in the hands of a developer that 
tries to convince the adoption of Cayenne :).


Re: Poleposition for Cayenne?

Posted by "Adrian A." <a....@gmail.com>.
> On 26/6/09 9:03 PM, Andrei Ionescu wrote:
>> Would project Poleposition:
>> http://sourceforge.net/projects/polepos
>> make sense for Cayenne (ORMs) to compare it's speed with other ORMs
>> (mainly Hibernate) ?
> Even comparing ORMs on this basis is fairly 
> pointless since not many people use their ORM to regularly write 100,000 
> records in a batch process into a database.
Maybe, but it would be important to be able to compare the ORMs for 
these scenarios too (to have some rakings here for this data too, not 
just the "popularity" raking - the only one that seems to exist right 
now :( ).

> How long does it take to create a new context? How expensive is it to 
> move objects from one context to another? How much memory does a 
> 1,000,000 object paginated (hollow) list take? ... These are the important questions.
If I'm not mistaken, Poleposition is just a framework for comparing 
"speed" results. It has those circuits, that state what to compare, and 
new circuits can be added to take in consideration things like you've 
asked above.

IMHO there would be quite allot value in having such comparison data 
(even if they do not reflect 100% the real working scenarios - but what 
comparison tests do anyway?).

Such a PDF report (e.g. comparing only ORMs) would also a very good 
marketing instrument, and project managers who decide what to allow in a 
project listen more to such material instead of developer argumentation.

Adrian.


Re: Poleposition for Cayenne?

Posted by Aristedes Maniatis <ar...@maniatis.org>.
On 26/6/09 9:03 PM, Andrei Ionescu wrote:
> Would project Poleposition:
> http://sourceforge.net/projects/polepos
> make sense for Cayenne (ORMs) to compare it's speed with other ORMs
> (mainly Hibernate) ?

This is my personal opinion and not an official Cayenne stance: I don't see the value in this. From this text on their web site:

   "The use of O-R mapping technology like Hibernate or JDO O-R mappers has a strong negative impact on performance."

Well, that is just not true. Perhaps if all you ever wanted to do is perform one SELECT query and output the result as text, then sure, you could use the database directly. But an ORM gives you Java objects as output which can be cached, managed in a three tier environment. Cayenne gives you prefetching and pagination. These things can result in applications which run several orders of magnitude faster than the same application which goes back to the database for every single piece of data it displays.

So unless Poleposition takes into account these scenarios, it is fairly worthless as a comparison. From what I can see it mostly measures the speed of reading and writing thousands of objects in sequence. I'll guarantee that will be faster in raw SQL than through an ORM of any sort and Cayenne will just look bad to people who don't understand the difference. But so what? Even comparing ORMs on this basis is fairly pointless since not many people use their ORM to regularly write 100,000 records in a batch process into a database.

How long does it take to create a new context? How expensive is it to move objects from one context to another? How much memory does a 1,000,000 object paginated (hollow) list take? How easy is the API to use? These are the important questions.


Just my thoughts. But thanks for pointing it out. We are very interested in any reviews or opportunities you might come across discussing Cayenne or other ORMs.

Regards

Ari Maniatis