Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-08-2020
Avatar de aguml
aguml aguml is offline
Miembro
 
Registrado: may 2013
Posts: 885
Poder: 11
aguml Va por buen camino
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
Responder Con Cita
  #2  
Antiguo 02-08-2020
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.039
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Desactiva la opción de información para "depuración".
Responder Con Cita
  #3  
Antiguo 03-08-2020
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.272
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
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.
Responder Con Cita
  #4  
Antiguo 03-08-2020
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
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.
Responder Con Cita
  #5  
Antiguo 04-08-2020
Avatar de aguml
aguml aguml is offline
Miembro
 
Registrado: may 2013
Posts: 885
Poder: 11
aguml Va por buen camino
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.
Responder Con Cita
  #6  
Antiguo 04-08-2020
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.272
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
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.
Responder Con Cita
  #7  
Antiguo 04-08-2020
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
[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.
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine

Última edición por Ñuño Martínez fecha: 04-08-2020 a las 13:03:35.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

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


La franja horaria es GMT +2. Ahora son las 11:39:27.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi