Как влияет производительность на неиспользуемую директиву?

Visual Studio автоматически создаст с помощью операторов для вас всякий раз, когда вы создадите новую страницу или проект. Некоторые из них вы никогда не будете использовать.

В Visual Studio есть полезная функция "удалить неиспользуемые файлы".

Интересно, есть ли какое-либо негативное влияние на производительность программы, если операторы использования, которые никогда не доступны, остаются в верхней части файла.

Ответ 1

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

Это может повлиять на производительность среды IDE и общей фазы компиляции. Причина в том, что он создает дополнительное пространство имен, в котором должно выполняться разрешение имен. Однако они, как правило, незначительны и не должны иметь заметного влияния на ваш опыт IDE для большинства сценариев.

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

Ответ 2

Нет, это просто стиль стиля компиляции/кодирования. В исполняемых файлах .NET используются полнофункциональные имена под капотом.

Ответ 3

Не влияет на скорость выполнения, но может быть некоторое влияние на скорость компиляции /intellisense, так как существует больше потенциальных пространств имен для поиска подходящего класса. Я бы не стал слишком беспокоиться об этом, но вы можете использовать пункт меню "Упорядочить использование" для удаления и сортировки операторов using.

Ответ 4

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

Ответ 5

Нет, при компиляции программы выполняется несколько процессов. Когда компилятор начнет искать ссылки (классы, методы), он будет использовать только те, которые используются в коде. Директива using указывает только компилятору, где искать. Многие неиспользуемые операторы могут иметь проблемы с производительностью, но только во время компиляции. Во время выполнения весь внешний код правильно связан или включен как часть двоичного файла.

Ответ 6

Следующая ссылка Хорошее чтение о том, почему удалить неиспользуемые ссылки, объясняет, как полезно удалять неиспользуемые ссылки из приложения.

Ниже приведены некоторые выдержки из ссылки:

  • Удалив неиспользуемые ссылки в вашем приложении, вы предотвращение загрузки CLR неиспользуемых ссылочных модулей в во время выполнения. Это означает, что вы сократите время запуска вашего приложения, так как требуется время для загрузки каждого модуля и избегает имеющих метаданные загрузки компилятора, которые никогда не будут использоваться. Вы можете что в зависимости от размера каждой библиотеки время запуска заметно уменьшается. Это не означает, что ваше приложение будет быть быстрее после загрузки, но может быть довольно удобно знать, что ваш время запуска может быть уменьшено.

  • Еще одно преимущество удаления любых неиспользуемых ссылок - это то, что вы   уменьшить риск конфликтов с пространствами имен. Например, если вы   имеют как System.Drawing, так и System.Web.UI.WebControls  вы обнаружите, что возникают конфликты при попытке ссылаться на   Image. Если вы используете директивы в своем классе, которые соответствуют   эти ссылки, компилятор не может определить, какие из них использовать.   Если вы регулярно используете автозаполнение при разработке, удаление неиспользуемых   пространства имен уменьшат количество значений автозаполнения в вашем   текстовый редактор по мере ввода.