Подтвердить что ты не робот

Неиспользуемые операторы

Возможно, я уже знаю ответ на этот вопрос, но я думал, что все равно стоит его спрашивать. Если у меня есть загрузка операторов using в моем файле кода, которые не используются;

  • Это оказывает какое-то негативное влияние на производительность?
  • Как компилятор справляется с ними при компиляции/времени выполнения?

Спасибо

4b9b3361

Ответ 1

имеет ли это какое-либо негативное влияние на производительность?

Нет.

Как компилятор справляется с ними при компиляции/времени выполнения?

Во время компиляции они делают то, что вы ожидаете, т.е. действуют как импорт пространства имен. Они не отображаются в скомпилированном двоичном файле: любая ссылка на тип использует полностью квалифицированное имя.

Компилятор проверяет пространство имен в выражении using, даже если оно не требуется; если вы удалите пространство имен, то все операторы using, которые ссылаются на нее, не будут выполнены.

Для меня избыточные выражения using напоминают избыточные комментарии. Они не имеют никакого значения для компилятора, но включают слишком много из них, и вы рискуете запутать своих разработчиков.

Ответ 2

Это не влияет на производительность в во время выполнения.

Вероятно, это значительно увеличит время компиляции, поскольку:

1) Компилятору нужно разобрать еще несколько символов
2) Он должен искать идентификаторы среди большего числа кандидатов. Но так как это, вероятно, использует hashtables, это тоже не должно быть дорого.

Я бы предположил, что замедление компилятора незначительно.

Я бы предположил, что это замедляет Intellisense немного больше, потому что список, который он должен отображать, и фильтр становится довольно длинным.

Удаление неиспользуемых приложений более стилистично, чем улучшение производительности. И вам нужно быть осторожными в методах расширения, поскольку они вводятся в область видимости с помощью операторов. Например, я не удаляю using System.Linq, даже если он в настоящее время не используется.

Ответ 3

В процессе исполнения нет производительности, использование разрешено во время компиляции, а бесполезные игнорируются.

Ответ 4

Отсутствие влияния производительности во время выполнения. Тем не менее, многие пространства имен могут несколько замедлить выполнение кода и снизить производительность

Ответ 6

Это может сделать время компиляции более длинным, но оно будет иметь либо незначительный, либо незначительный эффект во время выполнения.