Можно ли использовать Castle Windsor для хранения статических ссылок в памяти? - PullRequest
1 голос
/ 02 июня 2011

Фон ... Я должен создать новое (asp.net mvc) приложение, которое использует существующую библиотеку классов, которая является сложной и не может быть переписана на данном этапе. Основная проблема заключается в том, что эта библиотека классов имеет огромный успех инициализации - загрузка всех ее данных в память занимает до 10 минут. Это хорошо для производственной среды, где она работает быстро после запуска IIS. Однако для разработки это кошмар, потому что каждый раз, когда вы создаете решение и запускаете его в браузере, это занимает много времени.

Возможное решение? Таким образом, идея заключалась в том, что Castle Windsor или IOC-стиль жизни можно использовать для хранения этого в памяти, так что только переработка пула приложений приведет к дорогостоящей перезагрузке. Я помню, что раньше у меня была проблема, когда Windsor сохранял код в памяти, поэтому даже после его изменения и перекомпиляции в IIS все еще работал старый код - в этом сценарии это была проблема, но в моем новом сценарии это именно то, что мне нужно .

Кто-нибудь знает, как это можно сделать? Я пытался с фиктивным проектом, использующим стиль жизни Singleton, но после изменения проекта mvc он все равно перезагружает библиотеку классов.

Ответы [ 2 ]

1 голос
/ 09 августа 2011

Если данные сериализуются, вы можете сохранить их в кеше, который сохранит их состояние при перекомпиляции. Например, memcached запускается как отдельный процесс. Вы можете изменить корзину или перезапустить процесс сервера dev, и кеш сохранит свое состояние. В codeplex .

есть поставщик доступа к memcacheD.
0 голосов
/ 03 июня 2011

Возможно, вы могли бы сериализовать содержимое загруженной библиотеки и сохранить ее в двоичном виде на диске.Это может потенциально ускорить нагрузку.Это сумасшедшая идея, но опять же, иметь библиотеку классов, которая загружается за 10 минут, тоже безумно.

...