]
Steve Ebersole closed HHH-1154.
-------------------------------
Closing stale resolved issues
Startup times are a significant issue
-------------------------------------
Key: HHH-1154
URL:
http://opensource.atlassian.com/projects/hibernate/browse/HHH-1154
Project: Hibernate Core
Issue Type: Bug
Affects Versions: 3.0.5
Environment: Hibernate 3.0.5, Running in Spring 1.2.5, Oracle 9i database
Reporter: Tyler Van Gorder
Attachments: callTreeView.zip
Original Estimate: 224h
Remaining Estimate: 224h
We are currently evaluating Hibernate as our persistence layer for our next big project.
This project will be built on a pre-existing enterprise database that has 600+ tables.
As part of the evaulation process we have generated mapping files for about 300+ of those
tables.
This is where we run into a potential show-stopper for us:
The startup of the application is taking 40+ seconds. Most of this time is being spent
building the session factory, as it appears that the factory is loading and validating all
300+ mapping files. I will have a very difficult time introducing hibernate into our
environment (especially in development) when starting the application takes this long. The
code/run/debug cycle will simply be unacceptable.
I have switched the mappings to use the addCacheableFile and this has not really improved
the performance that much. Again, it appears that most of the time is being spent in the
creating of the factory.
Can we cut down on the amount of validation the session factory build is performing on
the mappings?
Is there a way to have the factory load the mappings on demand? And if this functionality
does not currently exist, how hard would it be to implement this feature in the factory
implementation?
Perhaps pre-load all the class/object names and as the objects/classes are encountered by
the engine, load their entire definition at that point?
I would really like to leverage hibernate for our next project and projects going
forward, but this one issue could put a halt on that.
Thanks for your time.
I have attached a call tree from Jprofiler to demostrat where the time is being spent.
This call tree was generated by running one of our unit tests which requires hibernate to
initialize and build the session factory. This configuration was done without caching the
mapping files, as I am actually getting better times when I do not serialize the mapping
files and most of the time lost is in building the actual session factory, not in the XML
parser.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: