Одна большая DLL не должна запускаться или выполняться медленнее, чем несколько меньших DLL.Потенциально запуск может быть более быстрым, поскольку операционной системе не нужно будет выполнять столько работы по инициализации.Однако я сомневаюсь, что вы заметите разницу.Меньшее количество DLL уменьшит объем памяти вашей программы.Опять же, не так много.
Я бы не рекомендовал запускать NGen для библиотек DLL, которые обслуживаются по сети.NGen предназначен для компиляции и оптимизации для процессора, на котором он работает.Если ваши клиентские машины имеют разную архитектуру, образ NGen может быть меньше оптимального или может просто не работать.
Дополнения после комментариев:
См. Улучшение времени запуска приложения для получения дополнительной информации об улучшении времени запуска.Также Написание высокопроизводительных управляемых приложений: Учебник для начинающих .
Также обратите внимание, что загрузчик не JIT всей сборки.Это JITs по мере необходимости.Если ваша программа не использует класс, который находится в сборке, код этого класса никогда не будет JITted.Кроме того, метод не JITted до первого использования.Поэтому, если вы никогда не вызовете метод Foo.Bar()
, он никогда не будет JITted.