Каковы точные причины, по которым создание домена приложения стоит так дорого?Они совместно используют одну и ту же кучу, одни и те же сборки и т. Д. Что именно необходимо сделать CLR, который потребляет столько ресурсов?
Мы видели сценарии, в которых доступ к типу / экземпляру из другого домена приложения занимает 10 секунд. (обновление: все необходимые сборки, которые будут использоваться обоими доменами приложений, уже загружены в текущий домен приложений, который порождает новый домен приложений, кроме одного) .Интересно, что это происходит только при первом доступе.Весь последующий доступ очень быстрый.
Обновление 2:
Мы прикрепили профилировщик выборки VS 2010, и вот результат:
Функции, выполняющие большую часть индивидуальной работы:System.AddIn.Pipeline.FrameworkElementAdapters.ViewToContractAdapter (класс System.Windows.FrameworkElement) Эксклюзивные образцы% 43,02
(да, мы используем здесь API расширения WPF)