Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   ejecutables de XE2 muy grandes (https://www.clubdelphi.com/foros/showthread.php?t=79248)

kapcomx 19-06-2012 01:08:31

ejecutables de XE2 muy grandes
 
Que tal compañeros, pues aqui nuevamente consultandolos, Pues resulta que ultimamente me he dado cuenta de que los programas (ejecutables) que he podido realizar en XE2 son demasiado pesados, incluso tengo uno que pesa casi 30 megas. al principio no me preocupo mucho por la capacidad de las maquinas de los clientes.
Despues supuse que eran los reportes de Fast Reports 4, pero hice uno sin reporte alguno y nada 20 megas, lo cual me parece exagerado y eso que genero los formularios en tiempo de ejecución.

despues hice un miniprogramita de 3 forms y supere los 12 megas, cuando en D7 hacia verdaderos monstruos de casi 40 formularios y lo mas que llegur fue 7 megas.

Supongo que me esta jalando algunas librerias a la hora de generar el ejecutable que tal vez no sean necesarias.
No se si alguno de ustedes halla tenido este problema y conozca la solución para tener ejecutables menos pesados.

Saludos...:cool:

mamcx 19-06-2012 01:49:57

Y porque es un problema?

Es un programa que descarga la gente de internet?

Si ese es el caso:

http://stackoverflow.com/questions/2...the-executable

http://delphi.about.com/b/2011/07/26...i-pack-exe.htm

Northern 19-06-2012 10:55:51

Estás utilizando, para compilar, la configuración Release o Debug ? Si utilizas esta última configuración para compilar el tamaño del ejecutable se hace muy grande.

mcs 19-06-2012 16:59:40

Si la diferencia de tamaño es entre Delphi 7 y Delphi XE2, es normal.

A partir de Delphi 2009 o 2010 los ejecutables "engordaron" de una forma muy grande. Los principales motivos de estos crecimientos son:
1) El uso de cadenas Unicode. Antes, cada carácter ocupaba 1 byte. Ahora, ocupa 2 bytes. Por lo tanto, cada cadena ocupa simplemente el doble de espacio
2) Los "metadatos" del RTTI. Son datos que se usan para poder cargar o usar clases o métodos sin saber su nombre en tiempo de compilación (no sé mucho cómo va, sólo lo he usado en Java). Esto se puede quitar, pero implica recompilar toda la VCL.

Si te molesta el tamaño, puedes probar a comprimir el ejecutable mediante UPX, o sinó compilar las VCL y tu aplicación sin RTTI (en Google encontrarás cómo hacerlo, por lo menos en D2010). Otra cosa que podrías hacer es dividir el programa en DLL's, pero esto si que no tengo ni idea de cómo se hace... :P

movorack 19-06-2012 18:52:25

También puedes hacer que tu programa requiera BPL's en tiempo de ejecución. bajandole muchisimo al tamaño del ejecutable. eso si tendrás que distribuir junto con el ejecutable las BPL's que requiera ej: FastReport

kapcomx 20-06-2012 00:15:46

gracias
 
Amigos mios no cabe duda que son unos buenazos en esto, les agradezco su atención, ya cheque los enlaces de Mamcx del RTTI y solo logre que bajara 2 megas.

en cuanto a lo que comenta Northern, creo que estoy haciendo algo mal ahi, entre en project options compile cambie Debug por Release pero no funciono.

Seguire buscando y voy a checar los comentarios de los compañeros mcs y novorack, cuando lo logre les comento.

Saludos...:cool:

Northern 20-06-2012 20:55:45

Cita:

Empezado por kapcomx (Mensaje 435582)

...
en cuanto a lo que comenta Northern, creo que estoy haciendo algo mal ahi, entre en project options compile cambie Debug por Release pero no funciono.


No es necesario entrar en "Project Options", simplemente pulsando Ctrl-Alt-F11 vas a la ventana Project Manager y allí en Build Configurations seleccionas Release.

Un simple ejemplo te deja ver lo que se reduce el EXE. Crea un nuevo proyecto y ponle un simple botón, compilalo en Debug y después en Release. En la carpeta Debug aparece el EXE de más d 7MB y en la carpeta Release aparece el EXE de 1.5MB (un EXE con un Form y un sólo botón de 1.5MB es una barbaridad).

Sin embargo si el proyecto ya está creado con una versión anterior y lo compilas con XE2, XE2 no crea las carpetas Debug ni Release :confused: Debe tener algo en el archivo *.DPROJ que lo hace actuar de una manera u otra.

kapcomx 22-06-2012 01:12:44

Gracias
 
Amigo Northern, te agradezco mucho tu ayuda te comento que me funciono muy bien ahora el monstruo de 22 megas solo pesa 8.5,

Saludos....:cool:

Delfino 24-06-2012 12:53:36

Cita:

Empezado por kapcomx (Mensaje 435813)
Amigo Northern, te agradezco mucho tu ayuda te comento que me funciono muy bien ahora el monstruo de 22 megas solo pesa 8.5

Y como lo has conseguido???

kapcomx 26-06-2012 18:53:04

como lo consegui
 
Cita:

Empezado por Delfino (Mensaje 435924)
Y como lo has conseguido???

Amigo Delfino tal como dijo Northern

simplemente pulsando Ctrl-Alt-F11 vas a la ventana Project Manager y allí en Build Configurations seleccionas Release

la version que utilizo en la XE2.

-Saludos...


La franja horaria es GMT +2. Ahora son las 01:13:35.

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