Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-03-2004
Ricardo Alfredo Ricardo Alfredo is offline
Miembro
 
Registrado: may 2003
Ubicación: Santiago - Chile
Posts: 65
Poder: 21
Ricardo Alfredo Va por buen camino
Question Tamaño de mi ejecutable

se que esta pregunta se ha realizado con anterioridad, pero no me queda clara las respuestas dadas.

Mi aplicacion va en los 5 mb los cuales tengo imperiosamente que reducir.

en alguna parte han dicho que se saque los packqges, pero si yo desmarco estos de la seccion design, me los elimina del delphi completamente y tengo que instalarlos para otra aplicacion que si los requiere.

lo otro que han dicho es poner los packqges en el runtime, con esto se me hace mas dificil manejarlos ya que no conosco los nombres de los pack y para que se usan.

¿estas son las unicas formas de reducir el tamaño de la aplicacion ?

es correcto lo que entendi o me he equivocado en algo.

en definitiva ¿ como puede reducir el tamaño de la aplicacion?.

efectue una prueba y abri el delphi y genere el ejecutable sin nada solo con lo que se crea cuando crean un proyecto nuevo y el ejecutable que me genero pesa 2,2mb ¿no creen que es demasiado grande si no he puesto ni una coma?.


cualquier luz a mi problema se los agradesco desde ya.
Responder Con Cita
  #2  
Antiguo 12-03-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
En que versión de delphi estas trabajando????

Yo he hecho file/new/project, dejando el formulario generado por delphi, compile el proyecto y los tamaños de los ejecutables son:

delphi 4: 277 Kb
delphì 7: 360 Kb

En ninguno de los dos casos he compilado con runtime packages.

Cita:
Empezado por Ricardo Alfredo
se me hace mas dificil manejarlos ya que no conosco los nombres de los pack y para que se usan
Lo único necesario es identificar que packages necesitará tu aplicación para correr. Creo que es vital que vos, que has diseñado la aplicación, conozcas que componentes se han usado en ella, y a partir de alli poder identificarlos. Si no, podes usar, como método de aprendizaje, el de prueba y error (aunque todo está muy bien documentado... pero si no tenes tiempo para investigar o reina el desorden, siempre vale).

Cita:
Empezado por Ricardo Alfredo
en alguna parte han dicho que se saque los packqges, pero si yo desmarco estos de la seccion design, me los elimina del delphi completamente y tengo que instalarlos para otra aplicacion que si los requiere
El tamaño de tu aplicación no tiene ninguna relación con la cantidad de packages o componentes disponibles para el ide de delphi. Tiene que ver únicamente con los utilizados por ella misma. Incluso, un package puede tener 20 componentes, pero si no hay referencias a 15 de ellos a lo largo y ancho de la aplicación, Delphi los excluirá del aplicativo en el proceso de compilación-enlace.

Cita:
Empezado por Ricardo Alfredo
estas son las unicas formas de reducir el tamaño de la aplicacion
Depende. No solo código va en la aplicación... y 5 MB de código parece bastante... alli también van "recursos", hablando en la jerga de windows. Eso significa que si pones un TImage en un formulario, con un Bitmap de 2 MB, pues tu aplicación tendrá que cargar ese peso dentro del ejecutable... es lógico, no?? Algo similar ocurre si pones un RichEdit, y le cargas la constitución de tu pais...

Además, quizas has cambiado la configuración del linker (Project/Options/Linker). Ponele atención especialmente a las opciones en el recuadro EXE and DLL options que tienen relación directa con el tamaño del ejecutable.

en fin... hay mucha tela que cortar, y mientras no aportes mas datos...

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate

Última edición por jachguate fecha: 12-03-2004 a las 06:06:27.
Responder Con Cita
  #3  
Antiguo 12-03-2004
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
Sólo añadir a la buena explicación del amigo Juan Antonio que, para comprimir exe generados en Delphi, también puedes valerte de utilidades estilo al UPX o AsPack
Responder Con Cita
  #4  
Antiguo 12-03-2004
Gydba Gydba is offline
Miembro
 
Registrado: ene 2004
Ubicación: Argentina
Posts: 673
Poder: 21
Gydba Va por buen camino
Me sumo a lo que dice catedill, lo mejor que he probado es upx. Tiene buena performance y además es extremadamente sencillo de manejar.

Info:
http://upx.sourceforge.net/
__________________
Suerte
.: Gydba :.
Responder Con Cita
  #5  
Antiguo 13-03-2004
Avatar de Sr_Sombrero
Sr_Sombrero Sr_Sombrero is offline
Miembro
 
Registrado: may 2003
Posts: 49
Poder: 0
Sr_Sombrero Va por buen camino
Jazz-Upx es una GUI para UPX muy amigable
Responder Con Cita
  #6  
Antiguo 07-04-2004
thecid thecid is offline
Registrado
 
Registrado: dic 2003
Ubicación: Jalisco
Posts: 7
Poder: 0
thecid Va por buen camino
Los compresores/protectores, como el upx, son muy buenos, en especial que te pueden ayudar a reducir tu ejecutable consideradamente, en el internet hya varios compactadores/protectores, esta el armadillo, el shinkler, upx, y varios mas, que la lista es interminable, ademas apoyo a los compañeros que dicen usar compresores, puesto esto tambien te proteje de la ingenieria inversa
Responder Con Cita
  #7  
Antiguo 24-01-2007
Avatar de PabloTech
PabloTech PabloTech is offline
Miembro
 
Registrado: ene 2007
Ubicación: Tucumán, Argentina
Posts: 82
Poder: 18
PabloTech Va por buen camino
Lightbulb Inclusión y eliminación

Hola... Muchas cosas de las dichas anteriormente no las he probado pero no dudo de que sean ciertas. Sin embargo, cuando a tu proyecto le agregas componentes (por ejemplo un componente de la clase TRichEdit), en la cláusula "USES" se agregan tambien una lista de unidades que aumentan el tamaño de tu aplicación (por ejemplo las unidades "StdCtrls, ComCtrls"). Contrariamente, si luego quitas esos componentes del proyecto esas unidades que se añadieron no se eliminan de la cláusula "USES" y el tamaño de tu aplicación sigue siendo grande.

Prueba y dime...

Chau...

Última edición por PabloTech fecha: 24-01-2007 a las 01:06:06.
Responder Con Cita
  #8  
Antiguo 05-02-2007
Pandre Pandre is offline
Miembro
 
Registrado: may 2003
Ubicación: San Bartolomé de la Torre, Huelva (España)
Posts: 35
Poder: 0
Pandre Va por buen camino
100% de acuerdo con los compañeros en cuando a lo de UPX y demás...

Y añadir, que si en la aplicación usas muchas imágenes, por ejemplo, es preferible que los TImageList, TImage, etc. carguen dichas imagenes de archivos y no que estén cargados en dichos componentes, pues eso si que engorda a los .exe.

Otra solución pasa por dividir en módulos la aplicación con DLLs o con Packages al estilo Delphi

Saludos
__________________
Un cordial saludo.

~~~~~~~~~~~~~~~~~~
José A. Gómez Martín
pandre@arsystel.com
Responder Con Cita
  #9  
Antiguo 05-02-2007
Avatar de ixMike
ixMike ixMike is offline
Miembro
 
Registrado: feb 2004
Posts: 1.151
Poder: 22
ixMike Va por buen camino
Bueno, aquí van mis consejos (mi método de reducir el tamaño del ejecutable):

1. Eliminar del programa cualquier componente que no utilices (chapucillas, elementos decorativos de más, etc). Cuando lo hayas hecho (si tienes que hacerlo) compila.
2. Cierra el programa y ahora vas unidad por unidad dejando la USES solo en "uses Windows, Forms;" o solo "uses Windows;" si esa unidad no tiene Forms. Vuelve a compilar.
3. Como te saldrán muchos errores, empieza a completar la uses con las unidades que te falten. Si no sabes a qué unidad pertenece una función o una constante, puedes mirarlo en la ayuda de Delphi (la seleccionas y pulsas F1).

Estos tres pasos sirven para eliminar las unidades que no necesitas. Otros sistemas para eliminarlas es declarar tus propias constantes o funciones API en tu unidad.

4. Cualquier imagen que aparezca en el programa contenida en un TImage o similar es conveniente que la cargues en ejecución (teniéndola en un archivo a parte) y a poder ser en formato JPEG.
5. Revisa bien tu código. A veces hay cosas que sobran (sobre todo cuando pasas las 1000 líneas de código y has ido haciendo pequeñas modificaciones).
6. Lo de marcar Run Time Packages viene bien si el programa es para ti, pero si es para alguien que no tiene Delphi no conviene marcarlo.

Por último, tras hacer una última compilación, aplicar algún programa de compresión. Yo utilizo UPX, que de los que he probado es el que mejor comprime, y, la verdad, obtengo increíbles resultados.

Bueno, estos pasos son consejos, es posible que alguno no te convenga o que no esté completo.

Por favor, que alguien complete la lista (seguro que se me escapa algo).

Espero que esto sirva de ayuda a todos.

Cordiales saludos.
Responder Con Cita
  #10  
Antiguo 06-02-2007
mia mia is offline
Registrado
 
Registrado: jul 2005
Posts: 6
Poder: 0
mia Va por buen camino
AsPack... sin lugar a dudas... de 8MB a 1,5MB. Sin palabras....

saludos...
Responder Con Cita
  #11  
Antiguo 06-02-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Cita:
Empezado por ixMike
Estos tres pasos sirven para eliminar las unidades que no necesitas.
También existe cnpack (open source y freeware) que ya lo hace.
Cita:
Empezado por ixMike
4. Cualquier imagen que aparezca en el programa contenida en un TImage o similar es conveniente que la cargues en ejecución (teniéndola en un archivo a parte) y a poder ser en formato JPEG.
Casi mejor dejarla en el ejecutable:
- Al trasladar tu programa, también necesitaras llevar las imágenes... así que el tamaño es el mismo.
- Los usuario son muy hábiles con los jpg y otros formatos cambiando el contenido del mismo... normalmente por fotos indecentes .

El uso de un TImageList en un módulo de datos es muy recomendable, ya que la misma imagen puede compartirse en 10 ventanas, pero solo engorda el ejecutable una sola vez. Dicho de otra forma.... "nada de usar la propiedad Glyph de los botones.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.

Última edición por Lepe fecha: 06-02-2007 a las 16:53:55.
Responder Con Cita
  #12  
Antiguo 06-02-2007
Avatar de edelphi
edelphi edelphi is offline
Miembro
 
Registrado: jun 2006
Posts: 55
Poder: 18
edelphi Va por buen camino
y como puedo crear un modulo de imagenes para que solo se carguen una sola vez en mi aplicacion??
Responder Con Cita
  #13  
Antiguo 07-02-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
File -> New -> TDatamodule

No recuerdo exactamente en que ficha está, buscalo un poco. Después añades el TImageList y añades las imágenes.

Cuando usas un SpeedButton, deberás añadir el "Uses datamodule1" para poder seleccionar el TimageList y su ImageIndex.

Otra cosa que suelo hacer es añadir los iconos en el imagelist y en tiempo de ejecución, (en el Oncreate de la forma) lo asigno a su propiedad Icon, ya que normalmente si reutilizo esa imagen.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #14  
Antiguo 07-02-2007
Avatar de ixMike
ixMike ixMike is offline
Miembro
 
Registrado: feb 2004
Posts: 1.151
Poder: 22
ixMike Va por buen camino
Cita:
Empezado por Lepe
- Los usuario son muy hábiles con los jpg y otros formatos cambiando el contenido del mismo... normalmente por fotos indecentes .
Te remito al truco 550 de Trucomanía

y en cuanto a lo de dejarlas dentro, depende: si tu programa es un solo ejecutable, pues mejor que sí, que las dejes dentro, pero si lo acompañan muchos archivos (de configuración, DLLs, etc) pues las imágenes pueden ir fuera del ejecutable.

Saludos
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


La franja horaria es GMT +2. Ahora son las 23:19:44.


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