App-pool dll и GAC

У нас есть около 80 приложений, которые будут находиться на одном сервере. Все очень маленькие сайты, которые используют одно и то же скомпилированное приложение, созданное на заказ, aspnet webform, c #. Каждое приложение имеет копию dll приложения в своем собственном каталоге bin, а также некоторые сторонние библиотеки с открытым исходным кодом (папка bin составляет примерно 15 МБ на диске). Это приложение принадлежит мне, поэтому я могу перестроить подписанный и вставить GAC, чтобы все сайты добраться оттуда. У меня вопрос: "Было бы хорошо с точки зрения потребления памяти иметь только одну копию dll в gac вместо 80?" "Может ли это улучшить общую производительность и использование памяти, помимо жира, который я могу удалить 15 * 80 МБ дискового пространства?" Спасибо


person manudea    schedule 02.02.2013    source источник
comment
Я могу только подумать об использовании такого инструмента, как VMMap, чтобы узнать, память есть и / или может использоваться совместно. Приложения используют один и тот же домен приложения?   -  person rene    schedule 02.02.2013
comment
отличное предложение. Инструмент действительно показывает, что asp создает копию каждой DLL во временной папке. Таким образом, потребление дискового пространства в два раза (один в bin и один во временном), и каждая используемая dll хранится в памяти и потребляет память дважды. Напротив gac dll загружаются один раз. Я полагаю, что это приводит к большой загрузке / выгрузке на сервере и, возможно, замедляет обслуживание сайта. Вероятно, перемещение большей части dll в gac может улучшить общую производительность.   -  person manudea    schedule 02.02.2013


Ответы (1)


Расход памяти dll будет таким же. Одним из серьезных преимуществ регистрации Dll в GAC является то, что ее может найти любое приложение dot net, работающее в системе. Во-вторых, когда вы помещаете dll в GAC, с помощью ngen.exe вы можете сгенерировать собственный образ DLL, который является полностью скомпилированной версией на уровне машины, как приложение Just in time compilation, что, таким образом, повысит скорость выполнения. Могут быть и другие преимущества, но это все, о чем я могу думать сейчас.

person Chintana Meegamarachchi    schedule 02.02.2013
comment
+1. Еще одним преимуществом было бы обновление dll в одном месте по сравнению с 80. - person kateroh; 03.02.2013