Forum > Spanish

¿Porque las compilaciones con Lazarus pesan más de 1MB?

(1/3) > >>

Metro!:
Cuando hago programas en Lazarus, los compilo... y el .exe pesa más de 1MB
Antes pesaban 20MB, pero cuando supe como sacar la información de depuración ahi ya pesaban 1MB

El tema es que en Delphi 7 las compilaciones pesan 400KB, es mucho menos que en Lazarus. Quería saber como hacer que lazarus los haga a 400KB como en Delphi 7.

lucamar:
No sé exactamente por qué pero el tamaño mínimo de un programa con LCL (una aplicación gŕafica) es siempre ese: entre uno y tres megas, dependiendo del sistema operativo, el "widgetset", etc. aunque luego el crecimiento posterior, a medida que vas añadiendo controles, etc, suele ser bastante lento.

Supongo que tendrá algo que ver con la cantidad mínima de código que es necesario incluir desde las unidades de la LCL: inicializaciones, finalizaciones, etc.

OwlOfTime:
Proba sacando el icono del exe a ver cuanto pesa.
Saca unidades aunque creo que algunas sacarlas no va a hacer nada.

Ñuño_Martínez:
Aparte de lo que te han comentado, echa un vistazo a las opciones de compilación.  Más concretamente:

* en Compilación y enlazado selecciona 2 (-O1 + quick optimizations) (-O2) o 3 (-O2 + slow optimizations) (-O3) y asegúrate de que están activadas las opciones Enlazado inteligente (-Cx) y Enlazado inteligente (-XX).  La opción Más pequeño en lugar de más rápido (-Os) actívala sólo si no te importa la velocidad.
* en Depurando desactiva todas las opciones, pero activa Eliminar símbolos del ejecutable (-Xs); que quede esa opción sola activada.
* opcionalmente, en Configuración y objetivo puedes probar a seleccionar los tres campos de Plataforma objetivo, aunque tienes que saber qué seleccionas y por qué, ya que limitará las plataformas en las que podrás ejecutar el programa (y no siempre afecta positivamente al tamaño pero puede ayudar en la optimización).
Y para compilar, selecciona Ejecutar > Limpiar y Construir... y pulsa el botón Limpiar y construir (no hace falta que cambies nada).

Con estas opciones he conseguido reducir mucho el tamaño de los ejecutables, y en programas no muy complejos (un par de formularios con un puñado de controles cada uno y algún que otro diálogo como el de selección de archivos) mi ejecutable ha sido de menos de 1MiB.

De todas formas, he podido comprobar empíricamente que los ejecutables que genera Lazarus necesitan muchísima menos RAM que los generados por Visual Studio (al menos los de VisualBasic.Net).  Hice exactamente el mismo programa, con los mismos componentes y algoritmos exactos, tanto en Pascal como en VisualBasic, compilados con opciones equivalentes y los de VB ocupaban más de el doble de RAM en la mayoría de casos, y siempre varios megas más (sí, megas).

GAN:
Otra opción: strip. Lo uso siempre desde hace años, me reduce de aprox. 40 Mb a 6 y modenas. Proyectos con varias unidades y formularios.

Navigation

[0] Message Index

[#] Next page

Go to full version