2010-05-05 5 views
2

В моем приложении Java SE я использовал Hibernate 3.3.2, и создание SessionFactory заняло около 5 секунд.Как можно создать SessionFactory после обновления Hibernate?

Сегодня я обновился до Hibernate 3.5.1, и внезапно это займет минуту.

Что может быть причиной такого драматического эффекта?

Я пробовал разные вещи, лучшая часть дня, и я понятия не имею, ...

Некоторые данные, которые я собрал

  • Согласно профилировщика самое время, проведенное в PersisterFactory.createClassPersister и в этом методе ProxyFactory.createClass занимает больше всего времени.
  • Журнал показывает ничего необычного
  • Изменение hibernate.bytecode.use_reflection_optimizer не делает никакой разницы
+0

включить debug для org.hibernate и посмотреть, возникает ли что-то подозрительное – Bozho

+0

Я забыл упомянуть об этом. –

ответ

1

ОК, это было абсолютно глупо и вообще не имело ничего общего с Hibernate, но я все равно отвечу на этот вопрос, потому что это может помешать другим делать те же ошибки ,

  1. Создание SessionFactory в Hibernate 3.5 не медленнее.
  2. При создании SessionFactory существует тысячи вызовов методов для инициализации Hibernate.
  3. Кажется, что каждый из этих вызовов метода создает небольшие накладные расходы для профилировщика и отладчика. Кроме того, компилятор JIT отключается во время отладки.
  4. В первый раз, когда я заметил медленность, я прошел один за другим, и все последующие тесты были выполнены с использованием профилировщика.
  5. Я только заметил, что из-за разочарования я просто запустил приложение без каких-либо намерений для дальнейшего устранения проблемы.
0

Er никогда не было Hibernate 3.4. Hibernate 3.3.2 был последним публичным релизом до Hibernate 3.5

+2

Ahhhh, поэтому ОП испытывает эту проблему;) –

+0

Я переустановил и да, это было 3.3.2 –

+0

Попробуйте уменьшить количество классов, отображаемых как ресурсы, чтобы узнать, можете ли вы изолировать проблему. Например, сопоставьте только один класс и время и сравните с более старым кодом. – MJB

Смежные вопросы