Неиспользованные операторы - PullRequest
22 голосов
/ 12 ноября 2010

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

  1. Оказывает ли это какое-либо негативное влияние на производительность?
  2. Как с ними работает компилятор во время компиляции / выполнения?

Спасибо

Ответы [ 6 ]

19 голосов
/ 12 ноября 2010

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

Нет.

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

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

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

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

8 голосов
/ 12 ноября 2010

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

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

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

Я думаю, что замедление компилятора незначительно .

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

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

1 голос
/ 12 ноября 2010

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

1 голос
/ 12 ноября 2010

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

0 голосов
/ 12 ноября 2010

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

0 голосов
/ 12 ноября 2010
...