Страницы

Поиск по вопросам

пятница, 2 ноября 2018 г.

Делает ли добавление в проект reference-ов из .Net фреймворка его более тяжелым?

Делает ли добавление в проект reference-ов из .Net Framework его заметно более тяжелым? Или заметно более медленным? Или ущербным?
Имею ввиду те сборки, которые включены в .Net Framework
На всякий случай, поясню зачем. Есть небольшой кусок кода, который выполняется только в Debug mode. Этот кусок я добавил самовольно, никто из команды меня об этом не просил. Если узнают, то могут попросить удалять. Но он мне сильно облегчает жизнь, а удалять и добавлять каждый раз не хочется, не удобно. Для того, чтобы этот кусок работал, надо подгрузить пару reference-ов из .Net Framework. В релизе этот кусок не задействован, но reference-ы остаются. Для упрощения жизни, я бы оставил эти reference-ы даже в релизной версии, несмотря на то, что они в ней не используются. Но, на сколько это критично? Не будет ли это ущербно в каком-либо смысле для релизной версии?


Ответ

Каждая сборка загружается в бегущее приложение лишь тогда, когда выполняется первый метод, референцирующий типы из этой сборки [1], [2]. (Если у вас создаётся экземпляр класса B из другой сборки в инициализаторе поля класса A, этот код с точки зрения CLR выполняется в конструкторе класса A.)
Поэтому неиспользуемые сборки не должны влиять на время пробега.
Я вижу минус от «лишних» добавленных сборок только в том, что Intellisense будет предлагать вам методы из этих подключенных сборок несмотря на то, что они вам фактически не нужны.

[‌1]‌: Back to Basics: When does a .NET Assembly Dependency get loaded
[‌2]‌: When exactly are assemblies loaded?

Комментариев нет:

Отправить комментарий