2010-12-07 21 views
10

En Visual Studio hay un comando para eliminar no utiliza mediante declaraciones¿La cantidad de espacios de nombres afecta el rendimiento?

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; 

¿Hay un impacto en el rendimiento por tener usings no utilizados?

+0

Incluso si no hay impacto en el rendimiento, eso no lo hace una buena idea. Hay poco que odio más que ver el uso de una clase y tener que averiguar CUÁL en particular es porque alguien tiene 'usar'-d en cada espacio de nombre bajo el sol. –

+0

Sé lo que quieres decir. Sin embargo, cada tarea debe ser priorizada y planificada :). –

Respuesta

7

La cantidad de espacios de nombres utilizados en los archivos de código no afecta el rendimiento en el tiempo de ejecución de la aplicación. Tiene un impacto en el tiempo de compilación ya que el compilador debe buscar esos espacios de nombres para elementos adicionales como tipos y métodos de extensión.

El único impacto en tiempo de ejecución el número de espacios de nombres que soy consciente de son

  • Depuración: El conjunto de espacios de nombres utilizados en un archivo de código dado se almacena en el AP y consultado por el depurador durante la resolución de nombres. Tener muchos espacios de nombres podría teóricamente afectar el rendimiento del depurador, pero en la práctica no he visto que esto sea un problema.
  • Asp.Net: Si se utiliza el modelo de despliegue donde las páginas se compilan en la primera vista de los usuarios, el número de espacios de nombres puede afectar el tiempo de carga de la primera vez que una página determinada es vista
+0

Cuando se trata de ASP.NET ¿no son páginas compiladas opcionalmente cuando el usuario ingresa a la carpeta raíz? Por lo tanto, un golpe de rendimiento? ¿O estoy lejos de aquí? Ref: http://msdn.microsoft.com/en-us/library/ms178466.aspx –

+0

@ subt13 afecta el tiempo de inicio de las páginas ASP.Net que se compilan al primer uso por parte del usuario. Agregaré ese escenario. – JaredPar

+0

Excelente. Gran respuesta/comentarios. –

1

Siempre pensé que el compilador los eliminaba.

+0

De hecho, solo los usa el compilador. En tiempo de ejecución, los espacios de nombres son solo una parte de los nombres de clase totalmente calificados. – codymanix

3

Solo afecta los tiempos de compilación cuando el compilador necesita iterar los espacios de nombres para encontrar los tipos a los que se hace referencia. (Y eso no es mucho de todos modos.) No afectará en absoluto el rendimiento del tiempo de ejecución.

3

No. Los espacios de nombres se utilizan para resolver nombres de clase en tiempo de compilación. Después de la compilación, su ensamblaje solo contiene nombres de clase totalmente calificados como System.Collections.Generic.List<int> myList = new System.Collections.Generic.List<int>(), todos los usos han desaparecido.

1

No hay impacto en el rendimiento para las instrucciones de uso no utilizadas. Solo necesitan evaluación en tiempo de compilación.

0

Estoy seguro de que hay un rendimiento en algún lugar (probablemente durante la compilación) pero es probablemente insignificante. De cualquier manera, recomendaría ejecutar ese comando: eliminará ese posible impacto de rendimiento y facilitará su lectura y mantenimiento de su código. Y eliminará namesapces no utilizados de intellisense, haciendo que sea más fácil codificar :)

Cuestiones relacionadas