delphi uses-clause

¿Cómo puedo identificar y deshacerme de las unidades no utilizadas en la "cláusula de uso" en Delphi 7?



uses-clause (7)

Esto debería reducir el tamaño del ejecutable bastante en algunos de mis proyectos muy grandes. Estoy seguro de que también habrá otros beneficios.

EDITAR: ¿Existe quizás una utilidad que escanee el proyecto y elimine los redundantes automáticamente? Tengo cientos de proyectos y el "primer retiro automático" sería el primer premio, aunque si tengo que hacerlo, tomaré el camino manual con la ayuda de herramientas de identificación.


Es posible que desee echar un vistazo a CnPack .

CnPack incluye un asistente de limpieza de Usos que aún no me ha fallado.



Solía ​​usar Ícaro que me dio un informe de las entradas de usos no utilizados.

Desde la página web

ICARUS analiza el código fuente de Delphi o Borland Pascal y genera un Informe de usos. Este informe lo ayudará a eliminar unidades innecesarias de sus listas de usos. También sabrá qué unidades que se pueden mover de la lista de usos de interfaz a la lista de usos de implementación.

Eliminar referencias de usos no utilizados tiene múltiples ventajas: Código más limpio para mantener, no es necesario preocuparse por el código que no se usa. El código de las secciones de inicialización y finalización en unidades no utilizadas no está vinculado. La compilación se ejecuta de forma más rápida y fluida.

ICARUS es muy fácil de usar, simplemente seleccione un archivo fuente, establezca algunas opciones y comience a analizar. O permita que el asistente incorporado lo guíe a través de este proceso.

ICARUS es FREEWARE.


Tal herramienta nunca puede analizar si las secciones de inicialización o finalización de una unidad usada deben ser ejecutadas o no. La eliminación de unidades de los usos podría ocasionar que no se ejecuten las secciones de inicialización y finalización y, por lo tanto, se produzcan errores.


Recuerde que el enlazador quitará todo lo que no pueda llamarse. Si no se usa una unidad y no tiene inicialización o finalización, se va a eliminar por completo de todos modos. Cualquier cosa a la que se haga referencia en la inicialización o finalización se mantendrá, pero en general esto no debería aportar mucho de todos modos.

Es posible que una unidad consista solo en la inicialización, por lo que la extracción total automática está limitada de todos modos. Las unidades que simplemente modifican el comportamiento del sistema de alguna manera bien podrían no tener referencias y, sin embargo, ser necesarias. (El administrador de memoria de reemplazo con un buen seguimiento de fugas me viene a la mente. Si bien tiene cosas que puede hacer referencia, no es necesario, simplemente utilícelas y obtenga el informe de fugas. Bonita verificación de su código).



Vea algunas de las respuestas aquí .