Recent

Author Topic: Cambio de tamaño en Ejecutable [SOLUCIONADO]  (Read 3689 times)

crisares

  • Jr. Member
  • **
  • Posts: 63
Cambio de tamaño en Ejecutable [SOLUCIONADO]
« on: September 13, 2021, 07:04:40 pm »
Hola a todos!!!

Quería saber si alguno me podría sacar una duda con el siguiente problema.

Tengo una aplicación bastante básica de 2 formularios la cual genera un ejecutable .exe portable de 4mb al compilarla, pero al editarle cosas tan mínimas como el caption a uno de los formularios ese ejecutable se va a 5.5mb al volver a compilar.

Alguno me podría ayudar a entender porque se produce esta diferencia de tamaño por una edición tan simple de una de las propiedades del formulario?

Cuando lo que yo mas quiero es lograr un .EXE portable del menor tamaño posible.
Intente eliminar el segundo formulario y su codigo y sigo sin lograr reducir ese ejecutable.

Desde ya muchas Gracias
 
« Last Edit: September 14, 2021, 04:50:45 am by crisares »

BlueIcaro

  • Hero Member
  • *****
  • Posts: 792
    • Blog personal
Re: Cambio de tamaño en Ejecutable
« Reply #1 on: September 13, 2021, 08:19:12 pm »
Hola, por defecto al compilar se guarda mucha información en el fichero ejecutable para poder depurar el programa.
Para crear un archivo más pequeño, debes usar un modo de compilación más optimizado.

Desde el menú Proyecto, selecciona Opciones del proyecto, luego Opciones del compilador.
Fíjate que arriba Pone "Modos de construcción".  Pulsa sobre el botón con tres puntos, y selecciona crear los modos de depuración y liberación.

Ahora ya tienes tres modos depuración, Default, Debug (para depuerar) y Release, que genera un ejecutable más pequeño.

Puedes cambiar el modo de compilación, usando el botón del menú de lazarus, el que tiene un rueda dentada y una llave.


Saludos

/BlueIcaro

crisares

  • Jr. Member
  • **
  • Posts: 63
Re: Cambio de tamaño en Ejecutable
« Reply #2 on: September 13, 2021, 08:34:03 pm »
Hola, por defecto al compilar se guarda mucha información en el fichero ejecutable para poder depurar el programa.
Para crear un archivo más pequeño, debes usar un modo de compilación más optimizado.

Desde el menú Proyecto, selecciona Opciones del proyecto, luego Opciones del compilador.
Fíjate que arriba Pone "Modos de construcción".  Pulsa sobre el botón con tres puntos, y selecciona crear los modos de depuración y liberación.

Ahora ya tienes tres modos depuración, Default, Debug (para depuerar) y Release, que genera un ejecutable más pequeño.

Puedes cambiar el modo de compilación, usando el botón del menú de lazarus, el que tiene un rueda dentada y una llave.


Saludos

/BlueIcaro

Hola! Gracias Por responder!!
Seguí estos paso que me mencionaste dejándolo en método release y no logre reducir el tamaño del EXE lamentablemente.
Otra cosa que note es que al realizar ediciones en la aplicación incluso de eliminación de código como ser variables que ya no uso, procedimientos que están de mas...etc...se sigue incrementando el archivo .LFM como también el .EXE

GAN

  • Sr. Member
  • ****
  • Posts: 370
Re: Cambio de tamaño en Ejecutable
« Reply #3 on: September 13, 2021, 09:29:00 pm »
Hola, no me explico lo de LFM, lo del ejecutable prueba con strip, tengo un programa de 5,9 MB y son varios formularios, unos 10 o más, y con varios componentes.
Lazarus 2.0.8 FPC 3.0.4 Linux Mint Mate 19.3
Zeos 7̶.̶2̶.̶6̶ 7.1.3a-stable - Sqlite 3.32.3 - LazReport

crisares

  • Jr. Member
  • **
  • Posts: 63
Re: Cambio de tamaño en Ejecutable
« Reply #4 on: September 13, 2021, 09:35:39 pm »
Hola, no me explico lo de LFM, lo del ejecutable prueba con strip, tengo un programa de 5,9 MB y son varios formularios, unos 10 o más, y con varios componentes.

Hola GAN
Hay un archivo en el directorio de la aplicación que tiene esa extensión al igual que dentro de la carpeta \lib\i386-win32 en mi caso ya que estoy compilando para Windows de 32 bytes y es muy raro que al reducir codigo y objetos del formulario este archivo crece en tamaño.
Con respetco a lo de Strip voy a investigar sobre como se realiza eso ya que lo desconozco.
Muchas Gracias

GAN

  • Sr. Member
  • ****
  • Posts: 370
Re: Cambio de tamaño en Ejecutable
« Reply #5 on: September 13, 2021, 11:39:06 pm »
Yo también compilo para Win32, si bien uso Linux, mis clientes usan Windows. De todas formas el programa strip está disponible desde el emulador de terminar de Linux o desde la consola de Windows.

Para usarlo es muy simple: strip archivo.exe y listo.
Lazarus 2.0.8 FPC 3.0.4 Linux Mint Mate 19.3
Zeos 7̶.̶2̶.̶6̶ 7.1.3a-stable - Sqlite 3.32.3 - LazReport

crisares

  • Jr. Member
  • **
  • Posts: 63
Re: Cambio de tamaño en Ejecutable
« Reply #6 on: September 14, 2021, 04:50:19 am »
SOLUCIONADO!
No logre utilizar el Strip desde el comando de sistema..
Pero encontré una herramienta UPX.exe que lo configure como herramienta externa en el IDE de Lazarus y resulto muy bueno! un .EXE de 18mb lo redujo a 1mb
Solo hay que compilar normalmente y va a crear el .EXE de 18mb normalmente en el directorio de la aplicación y después desde el menú herramientas presionar sobre el nombre que se le dio a la herramienta UPX y ahí reduce el .exe

Igual me sigue quedando la duda de porque si en la aplicacion uno reduce codigo, elimina formularios.. etc.. los archivos siguen aumentando su tamaño.

GRACIAS a TODOS


daragor

  • Jr. Member
  • **
  • Posts: 66
    • Blog Webscom
Re: Cambio de tamaño en Ejecutable [SOLUCIONADO]
« Reply #7 on: September 14, 2021, 04:12:54 pm »
Hace unos cuantos años hice una app para comprimir, y cumplir con este fin, te dejo el link esta todo disponible tanto a la descarga como el codigo fuente:

wcompressor-reducir-el-tamano-de-un-ejecutable-compilado-con-lazarus/

Se aplica, strip.exe que viene con lazarus y la libreria externa upx

Saludos
« Last Edit: December 01, 2022, 10:03:02 pm by daragor »
Inculcando el software libre.
https://www.webscom.com.ar

BlueIcaro

  • Hero Member
  • *****
  • Posts: 792
    • Blog personal
Re: Cambio de tamaño en Ejecutable [SOLUCIONADO]
« Reply #8 on: September 15, 2021, 05:56:04 am »
Una pregunta, ¿que versión de lazarus y FPC usas?

/BlueIcaro

crisares

  • Jr. Member
  • **
  • Posts: 63
Re: Cambio de tamaño en Ejecutable [SOLUCIONADO]
« Reply #9 on: September 15, 2021, 05:59:37 am »
Utilizo este...
Solucione esto de poder reducir muchisimo el EXE
Pero estoy teniendo un problema que no me permite abrir mas mi aplicacion en el IDE.
Dejo el link al post por si alguien puede ayudarme

https://forum.lazarus.freepascal.org/index.php/topic,56282.0.html

GRACIAS
« Last Edit: September 15, 2021, 06:04:00 am by crisares »

mosquito

  • Full Member
  • ***
  • Posts: 138
Re: Cambio de tamaño en Ejecutable [SOLUCIONADO]
« Reply #10 on: September 23, 2021, 09:33:30 am »

Seenkao

  • Hero Member
  • *****
  • Posts: 546
    • New ZenGL.
Re: Cambio de tamaño en Ejecutable [SOLUCIONADO]
« Reply #11 on: September 23, 2021, 10:49:08 am »
Привет!
  Используя LCL в код добавляется не только отладочная информация, но и вся информация, которая нужна и не нужна. Сопутствующие модули, библиотеки, классы, объекты... Всё это компилируется и засовывается в один файл, даже если вы этим не пользуетесь. И так происходит для каждой новой формы.
Но если работать дальше, с этими формами, то файл уже не увеличивается так быстро и сильно (потому что добавочный код уже был включён).
  Для решения данной проблемы можно выбрать два направления:
  - использовать нативные методы и самому создавать вручную форму.
  - использовать KOL. Я не знаю поддерживается проект в данное время или нет.

Yandex Translator:
Hola!
  Usando LCL, no solo se agrega información de depuración al código, sino también toda la información que se necesita y no se necesita. Módulos complementarios, bibliotecas, clases, objetos... Todo esto se compila y se inserta en un solo archivo, incluso si no lo usa. Y así sucede para cada nueva forma.
Pero si se trabaja más, con estas formas, el archivo ya no se incrementa tan rápido y con tanta fuerza (porque el código de extensión ya estaba incluido).
  Para resolver este problema, puede elegir dos direcciones:
  - utilizar métodos nativos y crear manualmente el formulario.
  - utilizar KOL. no sé si el proyecto es compatible en este momento o no.
Rus: Стремлюсь к созданию минимальных и достаточно быстрых приложений.

Eng: I strive to create applications that are minimal and reasonably fast.
Working on ZenGL

 

TinyPortal © 2005-2018