[hibernate-issues] [Hibernate-JIRA] Commented: (HHH-1258) startup time improvements

Tyler Van Gorder (JIRA) noreply at atlassian.com
Fri Nov 3 12:07:05 EST 2006


    [ http://opensource.atlassian.com/projects/hibernate/browse/HHH-1258?page=comments#action_25131 ] 

Tyler Van Gorder commented on HHH-1258:
---------------------------------------

Hi Emmanuel,

The patch I had submitted was not intended to speed up the startup time via a background thread, but rather it loads all of the configuration at startup, but does NOT instrument the persistent beans until they are used. The net affect is that when doing your unit tests, hibernate ONLY instruments the beans that are used for the unit test. The results are dramatic when you have a large number of persistent classes (we have 360+).

We have been using this "patch" in our testing environment for about a month now and we haven't encountered any problems. 

Max, I found a small problem with my patch, in that I was not lazy-instrumenting the beans when requests to the classmeta data are made to the session factory. I fixed this problem, I will try to get a patch to you.

Thanks.

Tyler.

> startup time improvements
> -------------------------
>
>          Key: HHH-1258
>          URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-1258
>      Project: Hibernate3
>         Type: Improvement

>   Components: core
>     Versions: 3.1 rc3
>     Reporter: Max Rydahl Andersen
>     Assignee: Max Rydahl Andersen
>  Attachments: SessionFactoryImpl.java, SessionFactoryImpl.patch
>
>
> while doing some basic startup perf testing the following were found - this issue is mainly to track what I find, and then fix it:
> Initial tests where 100 classes, 30 sec for buildSessionFactory
> setting hibernate.cglib.use_reflection_optimizer false and it is 10 sec for buildSessionFactory.
> (maybe we should autodetect which jdk we are running on and disable it per default for 1.4/1.5 - needs to validate runtime impact)
> Another (22%) time stealer is the discovery of getter/setters - in worst case it iterates over all declared methods per property.
> (alternatively we could cache/sort this list or make a more efficient implementation if a class only contain default property accessors)
> Other 20% of the time is done in net.sf.cglib related classes for build time enhancement.
> The rest of the time is Configuration creation (can be cached) and other iteration code.
> (p.s. don't take the % numbers as hard values - these are definitly affected by how many methods/classes you have; this underlying tests
> is done on pojos with a "high" method count (approx 100)

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://opensource.atlassian.com/projects/hibernate/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira




More information about the hibernate-issues mailing list