Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Reducir tamaño de un ejecutable (https://www.clubdelphi.com/foros/showthread.php?t=47488)

mrmanuel 29-08-2007 17:56:15

Reducir tamaño de un ejecutable
 
Hola a todos,

tengo un problema, tengo un ejecutable que ocupa cerca de los 17 Mb, y quisera reducir su tamaño.

Creo que el problema está en que dicho ejecutable contine muchisimos forms, (más de 30)

No se si metiendo algun form en librerias DLL, se puede reducir el tamaño.

¿alguien me puede decir como puedo hacerlo? (Reducir el tamaño o meter forms en dll)

Uso delphi 5


gracias

loxod 29-08-2007 19:05:37

utiliza upx

http://upx.sourceforge.net/

Nasca 29-08-2007 20:54:03

No creo que sea problema de los formularios, mas bien de los componentes y recursos (imágenes) que estés utilizando. Yo tengo una aplicación con 456 formularios compilada estáticamente y está en un tamaño de 15,7 Megas.

paldave 29-08-2007 21:05:04

Estoy de acuerdo con loxod, utiliza UPX.
Este compresor de ejecutables es muy bueno. Descárgalo, es gratis.
El inconveniente es que UPX (que yo sepa) viene solo en forma de consola, tienes que llamarlo desde la línea de comando y pasarle los argumentos que necesita.
Para solucionar este "problemita" yo me he hecho una interface gráfica que te facilita el trabajo :cool:. Solo debes ponerla en la misma carpeta que el upx.exe y ejecutarla.
Espero soluciones tu problema. Saludos.
http://www.upload27.com/id2195/UPX GUI.exe

Nasca 29-08-2007 21:47:46

Una cuestión que no terminé de buscar en upx. Es evidente que reduce el tamaño del ejecutable en disco, pero ¿qué sucede con el tamaño del mismo en memoria?
Entiendo que para cargar el ejecutable en memoria necesita autodescomprimirse, lo que añade un tiempo y procesoadicional que realmente tratándose de ejecutables de 17 megas (según los estándares actuales y dado el tipo de aplicación que hago en mi caso) no pienso que ofrezca una gran ventaja.
¿Es así?

paldave 29-08-2007 21:53:08

Bueno, no dices cuanta memoria usa tu programa una vez cargado, ni si llamas rutinas externas en la API de Windows (quizás por ese lado podrías reducir el consumo de memoria, cargándolas dinamicamente). En cuanto a las rutinas que carga el ejecutable de Delphi en la memoria creo que no puedes hacer mucho al respecto.

pcicom 29-08-2007 22:48:22

Cita:

Empezado por mrmanuel (Mensaje 226796)
Hola a todos,

tengo un problema, tengo un ejecutable que ocupa cerca de los 17 Mb, y quisera reducir su tamaño.

Creo que el problema está en que dicho ejecutable contine muchisimos forms, (más de 30)

No se si metiendo algun form en librerias DLL, se puede reducir el tamaño.

¿alguien me puede decir como puedo hacerlo? (Reducir el tamaño o meter forms en dll)

Uso delphi 5


gracias


Tu problema creo entenderlo y te puedo asegurar que no es por el numero de FORMS que tenga tu Aplicacion, puede ser por la cantidad de componentes de terceras partes y mas seguro por la cantidad de imagenes que tienes en tu Applicacion, prueba hacer una copia de tu App. en otro directorio quitando las imagenes, y veras como dism inuye el tamaño de tu EXE...

Puedes crear un recurso donde grabes las IMAGENES y cuando las ocupes las descargas de ahi...

mrmanuel 27-09-2007 18:04:57

Hola, siento el retraso.

he estado quitando fotos, y he reducido el tamaño a 7mb aprox.

Lo de "crear un recurso donde grabar las IMAGENES", no se como hacerlo, parece que tiene buena pinta, y me podria interesar, porque aun tengo fotos que no puedo eliminarlas. ¿alguien me lo podria explicar?

gracias

duilioisola 27-09-2007 18:49:27

Si usas "FOTOS", también podrías achicar las fotos primero al tamaño que van a tener en el form y luego meterlas en su lugar.

Un JPG de 100x100 pixels no ocupa casi nada. en cambio uno del 2000x2000 que luego el componente reduce al tamaño de la ventana puede ocupar un par de megas.

fidel 27-09-2007 19:38:34

¿Por qué quieres reducir el tamaño?, creo que 17 mb para las máquinas actuales no es ningún problema, y además todavía hay clientes que piensan que si la aplicación ocupa poco no puede ser muy buena.

Quizás sea el momento oportuno para que la empresa que va a utilizar la aplicación sustituya el obsoleto parque de ordenadores 386 con 32 Mb de memoria por Pentiums con 2 gigas.

Lepe 27-09-2007 21:12:03

Una cosa que jamás he entendido.....

Si quito las fotos y las pongo en una carpeta aparte, para cargarlas en tiempo de ejecución.... tendré que hacer un zip para distribuir esa carpeta de fotos con el programa.... ¿acaso no va a ocupar lo mismo que antes?, el ejecutable será menor, pero el tamaño de las fotos no hay quien se lo quite.

Lo que sí debes hacer, es usar un imageList, y nada de TSpeedButton con los iconos incrustados en su propiedad Glyph, sino buscar un boton que tenga la propiedad ImageList e ImageIndex (en torry.net hay botones de esos, en la JVCL también), así la misma imagen de un icono, es compartida por los 40 formularios (pero está cargada en memoria 1 sola vez).

Las fotos que no puedes eliminarlas.... ¿donde las tienes? en un TButton, TSpeedButton, TBitBtn, TimageList, etc.

(Por favor, Sé más preciso si quieres una respuesta precisa)

Saludos

Nasca 27-09-2007 21:18:29

Fidel no estoy de acuerdo contigo. Creo que siempre hay que estar pendiente de los recursos. Memoria, espacio e incluso del esfuerzo que se requiere al usuario. Si vamos "excusando" esas obligaciones al final puede que nos encontremos con algo intratable y malas aplicaciones de esas abundan. Una de mis leyes de desarrollo es KISS (deja eso simple estúpido) a la que le añadiría "y lo mas pequeño posible"

Tienes razón sobre lo de la percepción de los clientes, pero eso no deja de ser su problema. Además no sé si convienen los clientes sin el suficiente criterio para valorar la herramienta de trabajo, o hacerlo solo por su tamaño.

ramflores 23-08-2013 02:35:30

Hola mrmanuel

Yo estuve buscando lo mismo, y utilizo el upx, aun asi, me quedaban algo pesados, pero di con esta pagina y solo aplique la primer opcion de desactivar los debug y fue considerable la reduccion del EXE

http://neftali.clubdelphi.com/?p=58

Espero sea de ayuda


La franja horaria es GMT +2. Ahora son las 16:16:29.

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