Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   mi programa ha crecido demasiado en tamaño MB (https://www.clubdelphi.com/foros/showthread.php?t=73884)

Rofocale 22-05-2011 02:48:01

mi programa ha crecido demasiado en tamaño MB
 
hola disculpen mi programa ha crecido el ejecutable demasiado pesa casi 20MB claro que tambien estoy usando componentes de devexpress...

algo que me recomienden para que el programa tenga menos peso ?.. DLLs ?
gracias

Caral 22-05-2011 02:52:36

Hola
Si esta grande, habría que ver cuantos forms tiene.
Mi programa, que es a mi parecer grande no llega a 10MB.
Tal vez tengan algo que ver los componentes dbexpress.
Saludos

Rofocale 22-05-2011 03:00:52

si tiene 18 forms.. algo podria hacer para reducir el tamaño ?...

Caral 22-05-2011 03:19:11

Hola
18 forms y pesa eso ?, algo debe esta mal, me imagino.
Mi programa tiene mas de 100 forms y reportes y pesa menos de la mitad.
Saludos

Lord Delfos 22-05-2011 04:15:27

Algunas cosas que se me ocurren:

1) Los DebExpress. Nunca los he usado así que no sé, pero no creo.

2) Estés usando las versiones de debug de las unidades. En las opciones de proyecto ver si tenés "Use debug DCUs" habilitado y deshabilitarlo.

3) Hacer un análisis de las unidades que tenés en las uses de las diferentes unidades. Eso lo podés hacer con una herramienta como Icarus, que te muestra lo que tenés agregado y si lo estás usando o no.

Al González 22-05-2011 09:18:15

Cita:

Empezado por Rofocale (Mensaje 400896)
devexpress

Estos los conozco. Developer Express, controles para interfaces de usuario. Muy buenos.

Cita:

Empezado por Caral (Mensaje 400897)
dbexpress

Estos también. Componentes de acceso a datos, también conocidos como DBX. Muy buenos.

Cita:

Empezado por Lord Delfos (Mensaje 400900)
DebExpress

Estos no los conozco. ;)

Además de lo comentado, ¿qué tipo de imágenes integraste a tu aplicación? Dependiendo del tamaño de los gráficos, de su formato (BMP, JPEG, etc.) y de la eficiencia al reutilizarlos (duplicidad en dos o más formularios), el tamaño de la aplicación puede variar considerablemente.

duilioisola 22-05-2011 10:46:51

Yo creo que debes estar utilizando imágenes (muchas) para cada boton, fondo de formulario y alguna otra cosa.

Creo que deberías utilizar un ImageList y reutilizar la imagen.

Yo tengo un ImageList con muchas imágenes. La imagen de los botones "Salir" es siempre la misma, por lo que los botones solo apuntan a la imagen, en vez de guardarla cada vez.

Casimiro Noteví 22-05-2011 17:42:36

Voto por las imágenes, seguramente tiene varias y muy grandes. Además hay que tener en cuenta que aunque sean jpg, luego delphi "lo traduce" a bmp, por lo que siguen ocupando mucho. Hay que tener mucho cuidado y poner imágenes pequeñitas que ocupen lo menos posible, como si fuesen para la web :)

ecfisa 22-05-2011 17:43:26

Hola Rofocale.

Además de las sugerencias que te han dado, creo que este enlace te puede resultar de utilidad: (Carga dinámica, carga estática y Packages en Runtime)

Saludos.

Combat-F2D 23-05-2011 06:58:16

has mirado si por defecto te carga todos los posibles skins???

Al González 23-05-2011 07:00:24

Off topic
 
Julio: Que gusto da verlo a usted nuevamente por aquí. :)

Ñuño Martínez 23-05-2011 11:39:59

Un comentario:
Cita:

Empezado por Rofocale (Mensaje 400896)
DLLs ?

Nunca he entendido por qué se sugiere que el ejecutable se divida en archivos DLL para reducir su tamaño, cuando es evidente que no funciona. Al final va a cargar los archivos DLL, porque si no no los ejecutaría.

Además también es evidente que hacerlo es contraproducente, puesto que el conjunto necesita más espacio en disco y también en memoria (necesitan tablas, cosa innecesaria en el otro caso), salvo que se trate de bibliotecas y/o código reutilizable.

De verdad que no lo entiendo.:confused:

Casimiro Noteví 23-05-2011 12:33:45

Cierta vez me encontré con un problema similar, el ejecutable era enorme, la solución fue, además de quitar bastantes imágenes e iconos, crear el ejecutable con las bpl externas, eso solucionó el problema.

Young 23-05-2011 14:28:35

Los componentes devexpress son los que agregan muchos megabytes al nuestros ejecutables a cambio de unas interfaces más atractivas visualmente, bueno llevo muchos años programando y me costó mucho quitarme de la cabeza la obsesión por los megas de los ejecutables, amigo mio para los equipos que poseemos desde hará unos 10 años el tamaño del ejecutable no importa... quizas la única vez que lo pensé, fue cuando tuve la necesidad de actualizar vía internet la aplicación, el caso era particular, varios usuarios, una velocidad de acceso a internet "pauperrima", etc... la solución... uso de packages.

Saludos.

duilioisola 23-05-2011 16:02:34

Cita:

Nunca he entendido por qué se sugiere que el ejecutable se divida en archivos DLL para reducir su tamaño
Ventajas:
  • Puedes tener diferentes versiones de las partes de tu programa.
    Por ejemplo puedes tener el modulo de contabilidad o un form que diga "Llamame al tel. 123-456-789 para que te venda este modulo ;) "
  • Si cargas las librerías dinámicamente, solo estarás utilizando los recursos necesarios en cada momento.
    Esto es similar a crear todos los formularios o crearlos cada vez que necesitas abrirlos.
  • Si necesitas actualizar un módulo solo debes enviar una dll. Imagina que encuentras un bug en el módulo x. Lo solucionas y le subes solo eso.

Nota: lo mismo vale para las librerías de delphi (packages)

ContraVeneno 23-05-2011 16:22:23

si lo mismo vale para los BPL, pues mejor utilizar BPLs en lugar de DLLs...

El problema no son las imágenes, son los devexpress; y no tanto que sean un problema, sino que se están incluyendo dentro de tu ejecutable y al incluirlos, eso hace que tu ejecutable sea muy grande. Para que no tengas que volver a programar nada, simplemente compila tu proyecto con la opción "Build with runtime packages" y listo, tu ejecutable se reducirá de tamaño, eso sí, tendrías que distribuir tu ejecutable junto con los bpl de las bibliotecas (¿o eran librerías?, !diantres¡) que estes utilizando, en este caso, los de devexpress.


Build with runtime packages
Dynamically links the runtime packages in your project and enables the runtime packages edit box.

rretamar 23-05-2011 16:37:03

Un "truco" para reducir el tamaño de los ejecutables puede ser comprimirlos con la utilidad UPX. La ganancia de tamaño que se logra puede ser más que interesante.

http://upx.sourceforge.net

Muy recomendable.

Al González 23-05-2011 17:46:15

A ver, aquí tengo un proyecto que contiene alrededor de 70 formularios y varios módulos de datos. Todos los primeros utilizan componentes de Developer Express. No lo compilo con la opción "Build with runtime packages" porque me interesa tener todo en un sólo archivo ejecutable. Y el tamaño final de éste es de 6 MB.

A mí me parece bastante aceptable. Este .exe está compilado con Delphi 7 y, por supuesto, utilizo ampliamente herencia visual (no hay formulario que no derive de una plantilla y la gran mayoría de los formularios plantillas derivan de otra).

Creo que Rofocale debería decirnos más acerca de cómo está estructurado su proyecto. 18 formularios son pocos para que una falta de herencia visual fuese el factor principal del problema. Tal vez se trata de la versión del compilador que está utilizando, alguna opción de éste, otras grandes bibliotecas (sí, así se dice) o recursos sin uso que se están incluyendo, o simplemente lo que comentábamos de los gráficos.

Un megasaludo.

Al González. :)

ContraVeneno 23-05-2011 17:52:07

Cita:

Empezado por Combat-F2D (Mensaje 400934)
has mirado si por defecto te carga todos los posibles skins???


creo que por aquí viene todala bronca...

Casimiro Noteví 23-05-2011 18:14:49

Cita:

Empezado por Casimiro Notevi (Mensaje 400944)
Cierta vez me encontré con un problema similar, el ejecutable era enorme, la solución fue, además de quitar bastantes imágenes e iconos, crear el ejecutable con las bpl externas, eso solucionó el problema.

He de comentar que ese proyecto tenía unos 700 formularios y el ejecutable ocupaba alrededor de 20 megas.

Lo aclaro porque 18 forms no deben ocupar casi nada.


La franja horaria es GMT +2. Ahora son las 13:08:34.

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