¿Hace alguna diferencia si limpio mi cláusula de usos si las unidades eliminadas todavía se usan en otras unidades?

StackOverflow https://stackoverflow.com/questions/763862

  •  11-09-2019
  •  | 
  •  

Pregunta

Personalmente me gusta si mi uses Las cláusulas son lo más pequeñas posible, pero en muchas aplicaciones las unidades realmente grandes (en términos de inflar el ejecutable) como Forms o VirtualTrees Se necesitan al menos en otra unidad de todos modos.

Entonces:¿Hace alguna diferencia si limpio mi uses cláusulas incluso si al final no se retira ninguna unidad del proyecto?En ese caso:¿En qué manera?Y:esta limpiando el uses ¿Cláusula algo que debería hacerse lo antes posible o puede esperar hasta que encuentre por casualidad una unidad no utilizada?

¿Fue útil?

Solución

Si se utiliza en el proyecto en otro lugar, que no hará mucha diferencia, excepto para producir un código más limpio que es más fácil de leer. Hay algunas cosas de menor importancia que podría afectar, sin embargo.

Para Compilación: El compilador decide qué orden para compilar unidades en base a la cual el uso unidades que unidades. Si se quita una unidad de la cláusula de usos de una unidad de principios, que puedan causar la unidad utilizada para compilar más tarde en el ciclo de compilación. Esto puede no parecer mucho, pero hay que tener en cuenta que inicialización secciones ejecutar en el mismo orden en que se recopilaron las unidades. Esto realmente no debe hacer una gran diferencia a su proyecto, sin embargo.

CodeInsight: Cuando tiras de la finalización de código desplegable, que ofrecerá opciones sobre la base de todas las unidades disponibles en la actualidad. Se puede reducir el número de opciones que tiene que filtrar a través de - y por lo tanto la cantidad de tiempo que se necesita para tirar de la maldita cosa hasta - al reducir el número de unidades que está utilizando. (No, no soy amargo. ¿Por qué lo preguntas?)

Otros consejos

Generalmente no.Si una unidad se usa una vez, en cualquier parte del proyecto, no importa cuántas veces más se use.Por el contrario, no importa de cuántos lugares retire una unidad si todavía se usa al menos una vez en algún lugar.El programa compilado se comportará igual y tendrá aproximadamente el mismo tamaño.

La única diferencia estaría en el orden de las secciones de inicialización y finalización de la unidad.El orden de uso de la unidad afecta el orden en que se ejecutan esas secciones, aunque el efecto preciso nunca se ha documentado (así que trate de no confiar en el orden de inicialización).

Pero aun así te animo a que limpies tus listas de unidades, por la misma razón que te animamos a que limpies tus listas de variables y tus listas de parámetros.Cuando se deshace de las cosas que no necesita, resulta más fácil leer el código que ha conservado porque puede estar razonablemente seguro de que lo que está leyendo proporciona una imagen precisa de lo que hace el código.Si su código menciona un montón de unidades pero realmente nunca las utiliza, entonces la próxima vez que usted u otra persona mire el código, habrá un buen cambio: pasará algún tiempo tratando de encontrar dónde su código usa las instalaciones. de esas unidades.(Te dirás a ti mismo: "Hmm, este código incluye Graphics, pero no puedo ver dónde dibuja nada.Será mejor que eche otro vistazo, porque no pensé que este código tuviera responsabilidades como esa.Hola, compañero de trabajo, ¿puedes tomarte un tiempo de tu día para decirme dónde dibuja cosas esta unidad?")

Sí hay un truco Esto a menudo se pasa por alto y puede morderte la espalda:
Si hay algunos inicialización/finalización código, eso siempre se ejecuta incluso cuando no hay ningún código llamado de otro modo en su unidad (y el la unidad siempre está incluida aunque uno pensaría que no).Por lo tanto, eliminar una unidad que no necesita en su proyecto puede marcar una diferencia notable.

Otra cosa que vale la pena señalar es que el orden de las unidades determina qué identificador elige el compiladores cuando hay homónimos en 2 unidades diferentes y las llamas sin anteponer el nombre de la unidad (lo que siempre debes hacer como mejor práctica).

Aparte de eso, como señalaron Mason y Rob, el orden de las unidades afecta el orden en que se compilan y la secuencia de inicialización/finalización.

En cuanto a la información del código, será más rápido si elimina unidades innecesarias, pero también globalmente si todas las unidades utilizadas en el proyecto se agregan explícitamente al dpr en lugar de depender de la ruta de búsqueda para encontrarlas cuando se agregan implícitamente a través de otro unidad.

Me stronlgy de acuerdo con Mason y Rob: se hace una diferencia

!

Dependencia reducción.

La diferencia no está en el proyecto actual, como se explica por Mason y Rob. En lugar de ello, la diferencia está en su próximo proyecto. Si mantiene las unidades innecesarias (servidor) en su unidad (cliente), a continuación, utilizando esa unidad cliente en otro proyecto se tire en las dependencias. Si no hay otras unidades del cliente justificadas para las unidades simplemente tirados en, hinchazón luego de haber agregado.

Utilice la libre Pascal Analyzer para averiguar unidades no utilizadas en el código.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top