¿Hay algún beneficio en eliminar las declaraciones de uso no utilizadas en un proyecto VS?

21

¿Hay algún beneficio en eliminar las declaraciones de uso no utilizadas en un proyecto VS (como se puede hacer usando Resharper), o VS se encargará automáticamente de eso al construir / implementar?

B. Clay Shannon
fuente
1
Tener la impresión de que preguntaste removing unused references(DLL) y de todas las respuestas removing unused using statements.
Răzvan Flavius ​​Panda
@ RăzvanPanda: No, está usando declaraciones; Tendré que checa si puedes hacer esto último con R #, eso también sería una temperatura agradablemente baja.
B. Clay Shannon
Aight, corrigiendo la redacción para que se ajuste al significado.
Răzvan Flavius ​​Panda
1
puede eliminar referencias DLL no utilizadas con la última versión de R #, pero es importante tener cuidado con las referencias DLL dinámicas o las cosas podrían romperse en tiempo de ejecución.
Răzvan Flavius ​​Panda

Respuestas:

23

No hay ningún beneficio de rendimiento, si eso es lo que quieres decir.

Todas las referencias en un ensamblaje están completamente calificadas; el compilador simplemente usa las referencias que proporciona en su código para calificar completamente los identificadores, por lo que el único impacto de las referencias no utilizadas en su código fuente es una ligera disminución en la legibilidad (¿por qué esta referencia aquí?) y un aumento trivial en el tiempo de compilación.

En otras palabras, la IL generada es exactamente la misma, ya sea que elimine las referencias no utilizadas o no.

Robert Harvey
fuente
Puede haber un beneficio indirecto al eliminar los Usos no utilizados. Si hacerlo a su vez permite eliminar una o más referencias a archivos DLL externos de una solución, eso podría beneficiar el tamaño de implementación de la aplicación y / o el tiempo de inicio.
weir
1
La IL generada no cambia si elimina los usos, por lo que no veo cómo se vería afectado.
Robert Harvey
Verdadero: IL no cambiará si agrega usingreferencias s o DLL no utilizadas ( Reference Includeelemento de archivo MSBuild, /reference:argumento CSC). Tenía en mente: eliminar los correos electrónicos no utilizados usingde un proyecto de aplicación web. Esas habían sido las únicas líneas de código que incluían una gran cantidad de referencias DLL, así que ahora elimínelas. Como usted dice, se construye más rápido, más aún si las referencias fueran rutas UNC (CSC verifica todas las rutas de referencia). Trivial win 2: la velocidad de CI (las secuencias de comandos toman todas las DLL referenciadas) mejora a medida que se copian menos archivos, por ejemplo, del servidor de control de origen al servidor de compilación para publicar el servidor en los servidores de aplicaciones.
weir
El código más corto es un código más legible. Menos es más: este es el beneficio y vale la pena hacerlo por ese motivo.
niico
24

Sí, puedo pensar en dos beneficios principales:

  1. Más allá de su propósito funcional primario (es decir, para reducir el código de nivel de detalle), la lista de sentencias 'Uso' en la parte superior de un archivo de código puede decir a los lectores futuros (especialmente los que no tienen ReSharper), que los espacios de nombres son (o al menos eran ) correspondiente a ese archivo de código . Si poda activamente esta lista, puede actuar como un mejor mecanismo de señalización.
  2. La eliminación de espacios de nombres no utilizados reducirá la cantidad de candidatos de autocompletado en su editor de texto a medida que escribe. Si confía en las listas de autocompletado, esto lo ayudará a mantenerse "en la recta y estrecha" e incluso puede aumentar su velocidad de escritura, ya que debería poder encontrar su candidato de autocompletado previsto un poco más rápido.
Jim G.
fuente
1
Ah, muy buenos puntos, especialmente # 2!
B. Clay Shannon
0

Eliminar el código no utilizado es solo equipaje adicional y es difícil medir las eficiencias obtenidas.

  • Eliminar el código no utilizado, reduce el tiempo de compilación, estoy trabajando en un proyecto que toma entre 15 y 20 minutos, hay toneladas de código no utilizado. La eliminación del código no utilizado disminuyó el tiempo de compilación a ~ 7 minutos. Esto hace una diferencia cuando hay muchos desarrolladores en el equipo, esto les ahorra a todos tiempo para construir y probar rápidamente.

  • Si ha automatizado sus pruebas unitarias y de compilación, ahora ha eliminado las pruebas unitarias que no necesita. nuevamente, esto es tiempo reducido para ejecutar pruebas unitarias. Solo una mayor eficiencia en su proceso de gestión de construcción continua.

    • El código no utilizado da como resultado una huella más grande de sus archivos binarios. Tener una huella de código más pequeña reducirá el tiempo necesario para cargar / iniciar inicialmente. Aunque las ganancias pueden ser muy escasas y subjetivas.
Betnag
fuente
44
la pregunta no se trata de código no utilizado en general, se trata de referencias no utilizadas
mosquito
... vea Cómo responder : "Lea la pregunta detenidamente . ¿Qué es, específicamente , la pregunta que pide? Asegúrese de que su respuesta proporcione eso, o una alternativa viable ..."
mosquito