#net #visual_studio
Делает ли добавление в проект reference-ов из .Net Framework его заметно более тяжелым?
Или заметно более медленным? Или ущербным?
Имею ввиду те сборки, которые включены в .Net Framework.
На всякий случай, поясню зачем. Есть небольшой кусок кода, который выполняется только
в Debug mode. Этот кусок я добавил самовольно, никто из команды меня об этом не просил.
Если узнают, то могут попросить удалять. Но он мне сильно облегчает жизнь, а удалять
и добавлять каждый раз не хочется, не удобно. Для того, чтобы этот кусок работал, надо
подгрузить пару reference-ов из .Net Framework. В релизе этот кусок не задействован,
но reference-ы остаются. Для упрощения жизни, я бы оставил эти reference-ы даже в релизной
версии, несмотря на то, что они в ней не используются. Но, на сколько это критично?
Не будет ли это ущербно в каком-либо смысле для релизной версии?
Ответы
Ответ 1
Каждая сборка загружается в бегущее приложение лишь тогда, когда выполняется первый метод, референцирующий типы из этой сборки [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?Ответ 2
Добавлю, что лишние референсы также могут отрицательно влиять на время билда (как у вас на машине, так и на билд сервере) и на размер получаемого дистрибутива. Лишнего, конечно, держать не стоит. И в качестве оффтопика: Этот кусок я добавил самовольно, никто из команды меня об этом не просил. Если узнают, то могут попросить удалять. Но он мне сильно облегчает жизнь Это не есть образец поведения в команде. Поговорите с коллегами, объясните, почему вам нужен этот кусок. И скорее всего они либо с вами согласятся, либо подскажут другой путь решения.
Комментариев нет:
Отправить комментарий