Увеличивает ли количество пространств имен производительность?

В Visual Studio есть команда для удаления неиспользуемых операторов

using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

Есть ли успех при использовании неиспользуемых приложений?

Ответ 1

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

Единственное время выполнения влияет на количество областей имен, о которых я знаю,

  • Отладка: набор используемых пространств имен в данном файле кода хранится в PDB и проверяется отладчиком во время разрешения имени. Наличие множества пространств имен теоретически может повлиять на производительность отладчика, но на практике я не видел, чтобы это было проблемой.
  • Asp.Net: при использовании модели развертывания, где страницы скомпилированы при первом просмотре пользователями, количество пространств имен может влиять на время загрузки при просмотре данной страницы

Ответ 2

Это влияет только на время компиляции, когда компилятору необходимо итерировать пространства имен для поиска ссылочных типов. (И это вообще не так.) Это обычно не влияет на производительность во время выполнения.

Ответ 3

Нет. Пространства имен используются для разрешения имен классов во время компиляции. После компиляции ваша сборка содержит только полные имена классов, такие как System.Collections.Generic.List<int> myList = new System.Collections.Generic.List<int>(), все сообщения исчезли.

Ответ 4

Я всегда думал, что они были удалены компилятором.

Ответ 5

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

Ответ 6

Я уверен, что где-то есть производительность (вероятно, во время компиляции), но, вероятно, она незначительна. В любом случае, я бы рекомендовал запустить эту команду - она ​​удалит эту потенциальную производительность и сделает ваш код более легким для чтения и обслуживания. И он удалит неиспользуемые имена из intellisense, что упростит код:)