Короче говоря, что работает быстрее:Есть ли данные о производительности запуска NHibernate и Fluent NHibernate?
- SessionFactory Прекомпиляция XML конфигурации или
- Fluent NHibernate обеспечение конфигурации программно?
Короче говоря, что работает быстрее:Есть ли данные о производительности запуска NHibernate и Fluent NHibernate?
Fluent NHIbernate создает документы XML и Sessionfactory под капотом, поэтому он медленнее, чем не используется Fluent NHibernate.
Почему вы спрашиваете?
Я не знал, что Fluent NHibernate создает XML-документ, хотя я могу использовать некоторый внутренний API для генерации prcompiled mapping. – alex
Мой личный опыт заключался в том, что создание объекта конфигурации (что неизбежно * независимо от того, используется ли Fluent) обычно затмевает время, необходимое для установки объекта FluentConfiguration, причем коэффициент увеличивается с увеличением числа сопоставлений.
На 2.5 gz c2d, с моим проектом с примерно 15 сопоставлениями, для FluentConfiguration потребовалось 360 мс и 5215 мс для конфигурации.
В тестовом проекте с 1000 сопоставлениями (простые классы с 2-3 строковыми свойствами) для конфигурации FluentConfiguration потребовалось 470 мс и 40336 (40 секунд!) Для конфигурации.
* На самом деле, не совсем. большая часть стоимости Конфигурации исходит из проверки сопоставлений XML. Айенде обсудил его с here (а также быстрым ускорением, полученным при объединении отображений в один файл), и возможной альтернативой созданию конфигурации при запуске приложения является сериализация его, как обсуждалось here. В проекте тестирования 1000-изображений это сократило время, необходимое для получения объекта конфигурации примерно до 30 мс (хотя оно также увеличило время, необходимое для создания SessionFactory с ~ 3 до ~ 4 секунд - я не уверен, почему).
Почему вы заботитесь о различии? Это должно быть небольшая часть секунды, или занимает больше времени в вашем случае? – Paco
Просто не знал, как работает Fluent NHibernate, подумал, что он может быть более эффективным, чем настройка XML-конфигурации. – alex