Свободный запуск nHibernate по-прежнему медленный даже при постоянной оптимизации конфигурации - PullRequest
2 голосов
/ 17 апреля 2011

Мы пытаемся уменьшить накладные расходы при запуске Fluent nHibernate.

Все статьи, которые мы видели по этой теме (включая эту ), предлагают следующие два предложения:

  1. Сохраните конфигурацию при первом запуске и восстановите ее впоследствии, а не создавайте заново.
  2. Убедитесь, что ISessionFactory создается только один раз за сеанс приложения.

Мы выполнили оба этих действия, и время запуска Fluent nHibernate для создания фабрики сеансов теперь составляет около 550 мс в двухпроцессорной 64-битной системе Windows 7 с частотой 2,8 ГГц и бэкэндом SQLite. В настоящее время существует только четыре объекта, каждый из которых имеет в среднем около шести свойств.

Это все еще слишком высоко. Мы хотели бы сократить это время до 20 мс или меньше (чтобы даже на медленных системах оно составляло менее 100 мс). Есть ли вероятность, что мы сможем это сделать?

Любое понимание того, что делает Fluent nHibernate во время запуска, которое также занимает много времени, также поможет.

1 Ответ

0 голосов
/ 17 апреля 2011

Вы можете использовать службу WCF, которая управляет вашей SessionFactory. Поскольку это не зависит от вашего приложения, время запуска не будет зависеть от создания вашей SessionFactory. Конечно, это приносит ряд других сложностей (ленивая загрузка для одного) в уравнение, но это решает вашу проблему времени запуска, так как служба уже будет работать при запуске вашего приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...