Hi Thomas,

indeed if I repetead the lookup(using different ids) 100 times or even 1000
times the difference is decreasing, proportionally speaking.

iterations              Hibernate       OJB
1                       .122s           .867s
100                     1.50s           3.09s
1000                    12.90s  25.54s


I agree with you this is a basic performance test, but I was surprised
seeing that for a simple load the difference is that big.


Regards,

florin

-----Original Message-----
From: Mahler Thomas [mailto:[EMAIL PROTECTED]
Sent: Tuesday, November 04, 2003 4:21 PM
To: 'OJB Users List'
Subject: RE: Loading an object


Hi Florin,

IMO it makes not much sense to compare the performance of two persistence
engines based on such a simplified test.
You must test things like working with real world object models,
with high loads over a longer period of time,
multi user access scenarios, etc.

I don't know about Hibernate, but OJB at least has a "warming up" phase.
So for this simple test hings will look differenet if you perform it in a
loop with say 10 000 iterations!

cu,
Thomas

> -----Original Message-----
> From: Florin Pop [mailto:[EMAIL PROTECTED]
> Sent: Tuesday, November 04, 2003 3:09 PM
> To: '[EMAIL PROTECTED]'
> Subject: RE: Loading an object
> 
> 
> Hi bellow are the 2 methods
> 
> public void testLoadPersonUsingOJB() throws Exception {
>         long time = System.currentTimeMillis();
>         final long PERSON_ID = 112327;
>         Person person = new Person();
>         Identity id = new Identity(Person.class, 
> Person.class, new Long[]
> {new Long(PERSON_ID)});
>         person = (Person) broker.getObjectByIdentity(id);
>         assertTrue(person != null);
>         assertTrue(null != person.getBirthday());
>         assertTrue(null != person.getCitizenship());
>         assertTrue(null != person.getCity());
>         assertTrue(null != person.getFirstName());
>         assertTrue(null != person.getName());
>         assertTrue(null != person.getStreet());
>         time = System.currentTimeMillis() - time;
>         System.out.println(time);
> }
> 
> public void testLoadPersonUsingHibernate() throws Exception {
>         long time = System.currentTimeMillis();
>         final long PERSON_ID = 112327;
>         Person person = (Person) session.load(Person.class, new
> Long(PERSON_ID));
>         assertTrue(person != null);
>         assertTrue(null != person.getBirthday());
>         assertTrue(null != person.getCitizenship());
>         assertTrue(null != person.getCity());
>         assertTrue(null != person.getFirstName());
>         assertTrue(null != person.getName());
>         assertTrue(null != person.getStreet());
>         assertTrue(null != person.getFullName());
>         time = System.currentTimeMillis() - time;
>         System.out.println(time);
> }
> 
> the session(4 hibernate) and the broker (4 OJB) are initialized in the
> constructors.
> 
> 
> Regards,
> 
> florin
> 
> -----Original Message-----
> From: Armin Waibel [mailto:[EMAIL PROTECTED]
> Sent: Tuesday, November 04, 2003 3:40 PM
> To: OJB Users List
> Subject: Re: Loading an object
> 
> 
> Hi,
> 
> Florin Pop wrote:
> 
> > Hi again,
> > 
> > I have tried your suggested approach but curiously the same result.
> > 
> > The tests that I run consist just in loading an Person 
> object from the
> data
> > source. Both with Hibernate and with OJB I use no cache and 
> this load
> > operation is the first and only one opperation that I execute in one
> > session. So there is no object cached anywhere.
> > 
> > For me is also very surprizing the result.
> > 
> For me too!
> 
> How does your test looks like?
> 
> long time = System.currentTimeMillis();
> Person person = (Person) broker.getObjectByQuery(query);
> time = System.currentTimeMillis() - time;
> 
> Can you post source of both test?
> 
> regards,
> Armin
> 
> 
> > Regards,
> > Florin
> > 
> > PS: I have another question: is it possible in OJB to map 
> an object field
> to
> > a calculated value. For example I have a birthday column in 
> PERSON table
> and
> > I want to have in the Person class a field age containing 
> the age of the
> > person(
> > age = currentDate - birthday, or something like this)
> > 
> > 
> > -----Original Message-----
> > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
> > Sent: Tuesday, November 04, 2003 2:22 PM
> > To: [EMAIL PROTECTED]
> > Subject: RE: Loading an object
> > 
> > 
> > Hello,
> > 
> > 
> >>-----Original Message-----
> >>From: Florin Pop [mailto:[EMAIL PROTECTED]
> > 
> > 
> >> I tried:
> >>
> >>        Criteria crit = new Criteria();
> >>        crit.addEqualTo("id", new Long(PERSON_ID));
> >>        Query query = new QueryByCriteria(Person.class, crit);
> >>        Person person = (Person) broker.getObjectByQuery(query);
> >>
> >>but it works very slow, 6-8 times slower than in Hibernate:
> > 
> > 
> > I do not believe that. 
> > 
> > [..]
> > 
> > 
> >>Is there another way for doing this in OJB? 
> > 
> > 
> > try:
> > 
> > Identity id = new Identity(Person.class, Person.class, 
> >                   new Long[] {new Long(PERSON_ID)});
> > PersistenceBroker.getObjectByIdentity(id);
> > 
> > 
> > Olli
> > 
> > 
> ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> > 
> > 
> ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> > 
> > 
> > 
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to