FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Tamaño excesivo de compilado
Hola amigos, tengo un pequeño proyecto creado con Embarcadero RAD 10.3 Rio y veo que ocupa mucho para lo poquita cosa que es. Es un programa el cual me ordena los archivos que tienen un formato de fecha en su nombre en el directorio del mes correspondiente, o sea, si tengo el archivo IMG-20141201-WAV07.jpg me lo mete en un directorio llamado Diciembre y si no existe el directorio lo crea. El programa funciona como quiero, sólo tengo la duda del tamaño excesivo.
Os comparto el proyecto a ver si me podeis ayudar a crear un compilado más pequeño porque de seguro se podrá pero no se qué tocar en la configuración: https://mega.nz/file/MhtW1C4J#Ci6FCJ...EsGEcgLR2ftndI |
#2
|
||||
|
||||
Desactiva la opción de información para "depuración".
|
#3
|
||||
|
||||
Bueno, lo del tamaño excesivo, siempre es relativo.
Digamos que si creas un EXE con un formulario y un botón en Delphi, ocupará 2,5 MB. Aunque tú sólo hayas incluído un único botón, en el ejecutable se añaden librerías mínimas que digamos que son la "base" de cualquier programa. (ejecutable win32 sin información de debug). Si luego añades más componentes estandard y utilizas funciones de la VCL, seguramente el ejecutable ocupará lo mismo. Porque todo eso va incluído en "el mínimo". De todas formas hoy en día 2,5MB no veo que sea excesivo. Si el tamaño es crítico siempre puedes utilizar un UPX (aunque personalmente no lo recomiento a nivel general) que te lo dejará en 0,5MB. Si haces una prueba mínima y creas 2 proyectos con los formularios como los que hay abajo, verás que ocupan practicamente lo mismo, aunque uno incluye muuuuchos más componentes que el otro (por esto que te digo).
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#4
|
||||
|
||||
Hay formas de reducir agresivamente eso, pero, REALMENTE necesitas reducirlo? O es solo tu opinion?
Recuerdo que ni cuando me tocaba crear apps para discos floppy 3 1/2" me tocaba hacer eso...
__________________
El malabarista. |
#5
|
||||
|
||||
Es solo mi apreciación. Por otro lado ¿Es normal que el compilado para x64 ocupe el doble que el compilado para x32?
Me gustaría que alguien mirase el archivo de proyecto ya que usé un proyecto que ya tenía y borre muchos componentes y funciones y aproveché solo una pequeña parte y no sé si hay cosas en el archivo de proyecto que se quedan y sobren. |
#6
|
||||
|
||||
Hay utilidades que te permiten eliminar uses innecesarias, cnWizards creo que tienen una opción y Peganza también una utilidad para hacerlo.
Limpiarás el código, lo que ya no tengo claro si esa limpieza afectara al tamaño final del EXE.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#7
|
||||
|
||||
[edito] Hablo de Delphi y Lazarus, pero estas opciones o similares también están disponibles en los compiladores de C y C++. O al menos lo están en los compiladores Turbo C/C++ 2.0, GCC y derivados como MinGW y DJGCC, así que seguramente también existen para RAD Studio. [/edito]
Además de desactivar las opciones de depuración, hay dos más: Enlazado inteligente (Smart linking) y eliminación de símbolos (Strip symbols). En general no reducen tanto como la opción de no incluir la información de depuración pero también pueden quitar un buen pellizco. Para el primero, tendrás que recompilar todas las unidades (o sea, eliminar todos los archivos objeto y compilar) porque si no no compilará completamente las unidades que no hayan cambiado. En cuanto a la segunda, no funcionará (o no lo hará completamente) si usas RTTI. Ahora mismo estoy en Linux así que no puedo comprobarlo con Delphi, pero Lazarus divide la operación de "Enlazado inteligente" en dos opciones diferentes, una para generar la información previa necesaria para saber si cierta sección de código puede obviarse si no se usa (Smart linkable) y otra que es la que realmente se encarga de no añadir dicho código en el ejecutable final (Smart linking), ya que puede haber unidades que quieras que estén todas las funciones y procedimientos independientemente de que se usen o no (por ejemplo, para implementar ciertos servicios del sistema operativo). Lazarus también incluye la opción Más pequeño en lugar de más rápido que no sé si existe en Delphi. Última edición por Ñuño Martínez fecha: 04-08-2020 a las 13:03:35. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Tiempo de proceso excesivo | elguille | Varios | 15 | 17-04-2013 11:34:04 |
Delphi 2007, consumo excesivo de cpu | Casimiro Notevi | La Taberna | 3 | 05-01-2010 23:23:36 |
excesivo uso de transacciones | macro32 | Conexión con bases de datos | 5 | 22-04-2008 09:25:41 |
Crecimiento excesivo | jsanchez | Firebird e Interbase | 21 | 08-03-2007 18:52:29 |
Excesivo consumo de memoria | 1111111 | Firebird e Interbase | 11 | 18-06-2005 23:08:20 |
|