Jarwis
@Jarwis
ASP.NET разработчик

Как отражается на производительности создание нового AppDomain?

Доброго времени суток.

У меня появилась задача — нужно динамически загружать и выгружать из C# приложения другие сборки. Насколько я знаю, загрузив сборку, её невозможно выгрузить, но можно выгрузить AppDomain целиком. Поэтому вопрос, насколько оправдано (и оправдано ли вообще) создание нового AppDomain под новую загружаемую сборку? Один AppDomain под все сборки не подойдет, потому что код из одной сборки может вызываться и работать, когда другая сборка должна быть выгружена. Количество таких сборок может колебаться от 5 до 10-15.
  • Вопрос задан
  • 2304 просмотра
Решения вопроса 1
Думаю, что оправдано т.к. это единственный "честный" путь выгрузки сборки.

При вызове функции из другого AppDomain используется маршаллинг так, что будут потери в производительности на сериализацию/десериализацию передаваемых/возвращаемых между сборками объектов. Если передаваемых/возвращаемых данных не много тогда не критично. Затраты памяти на дополнительные GC и сами AppDomain думаю не принципиальны.

Недавно была описана альтернатива, но имхо не стоит так делать.

ЗЫ Если интересует готовый каркас приложения, обращайся.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы