2010-10-17 4 views
1

Для каждого приложения application_start я вызываю ActiveRecordStarter.Initialize (фактически это часть ActiveRecordIntegration facitliy). Это кажется очень тяжелым, занимает около 3,5 секунд, чтобы инициализировать мои 16 объектов.Оптимизация времени инициализации ActiveRecord (при запуске приложения)

некоторый фон: 1. получил 16 объектов AR на данный момент, почти никогда не менялся (может быть, раз в неделю). 2. Большинство изменений не связаны с AR, но я «страдаю» от огромного времени запуска приложения при разработке локально (нужно подождать 3.4 с AR для загрузки, хотя в действительности ничего не изменилось).

Мои мысли: кажется, что если я сохраню конфигурацию AR в двоичном файле и загружу его, если заметили изменения (например, просмотрев объекты AR и сделав некоторые MD5 в своих исходных файлах, чтобы увидеть изменения). Если что-то изменилось, мне нужно заново создать двоичный файл. От тестирования, которое я сделал, похоже, что большую часть времени оттуда.

So: a. я иду в правильном направлении? может быть, я что-то делаю неправильно? b. вы уже исправились и поделитесь им со мной? :)

+0

У нас есть несколько приложений, основанных на Castle ActiveRecod, но никогда не было подобных проблем. –

+0

Вы использовали ActiveRecordFacility? как вы зарегистрировали объекты ActiveRecord? –

ответ

0

Вы правы, фабрика сеансов NHibernate может занять некоторое время на сборку, и сериализация ее в файл - хороший способ улучшить это.

Для реализации этого взгляните на this article и corresponding code in the Castle NHibernate facility.

+0

Как всегда, спасибо Маурицио! Не знаю, где я могу это добавить. Нужно ли мне менять внутренние элементы ActiveRecrodStarter? можете ли вы направить меня в соответствующее место, я не знаю, что такое внутренние внутренние элементы (по крайней мере, до сих пор :)) –

+0

@Oren: Я бы попытался реализовать это через пользовательский ISessionFactoryHolder (см. справочные документы xml для того, как вводить ваши собственный: http://www.castleproject.org/activerecord/documentation/trunk/manual/xmlconfigref.html) –

+0

, похоже, немного из моего объема, ActiveRecordStarter - это один БОЛЬШОЙ монстр (со многими внутренними элементами), что делает его очень Мне трудно понять, что там настроить. вы думаете, что такой запрос (интеграция оптимизированной конфигурации NH в AR-стартер) может быть опубликован в группу пользователей? –

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