更新Hibernate后,如何创建SessionFactory变慢?

时间:2010-05-05 16:20:04

标签: java hibernate

在我的Java SE应用程序中,我使用了Hibernate 3.3.2,创建SessionFactory大约需要5秒钟。

今天我更新了Hibernate 3.5.1,突然间需要一分钟。

造成这种戏剧性影响的原因是什么?

我在一天中的大部分时间都尝试了不同的事情而且我没有任何线索......

我收集的一些数据

  • 根据分析器,PersisterFactory.createClassPersister花费的时间最多,而ProxyFactory.createClass花费的时间最多。{/ li>
  • 日志显示没什么异常
  • 更改hibernate.bytecode.use_reflection_optimizer没有区别

2 个答案:

答案 0 :(得分:1)

好吧,这绝对是愚蠢的,完全与Hibernate无关,但无论如何我都会回答这个问题,因为它可能会阻止其他人犯同样的错误。

  1. 在Hibernate 3.5中创建SessionFactory 更慢。
  2. 在创建SessionFactory时,为了初始化Hibernate,有数千个方法调用。
  3. 这些方法调用中的每一个似乎都会为探查器和调试器产生很小的开销。调试期间也会禁用JIT编译器。
  4. 我第一次注意到我单步执行代码的速度很慢,所有后续测试都是使用分析器完成的。
  5. 我只是注意到,因为在沮丧中我只是运行应用程序而无意进一步追查问题。

答案 1 :(得分:0)

呃,从来没有一个Hibernate 3.4。 Hibernate 3.3.2是Hibernate 3.5之前的最后一次公开发布