Delphi vs Lazarus
Hola sigo preguntando, tuve la curiosidad de compilar un proyecto en delphi 2010 y otro en lazarus 0.9.30.2, los cuales solo tienen un formulario vacio, sin embargo existe una diferencia enorme en el tamño del ejecutable
Delphi 817 KB Lazarus 18 MB Saben por qué? :eek: Gracias. |
Es la pregunta del millón que todos nos hicimos alguna vez. :p
http://wiki.lazarus.freepascal.org/L...ries_so_big.3F http://wiki.lazarus.freepascal.org/Size_Matters |
Hola.
El tamaño del ejecutable en Delphi se reduce drásticamente al quitar la inclusión de packages. Valores obtenidos con Delphi 7: Código:
Project1.exe (con runtime packages) 369.152 bytes No soy conocedor de Lazarus y estoy interesado en comenzar a utilizarlo. Así que buscando más sobre el tema del tamaño de los ejecutables, me llamó la atención estos enlaces en los que dicen sucederle lo contrario:además se abordaron otros temas que desconocía y me resultaron interesantes. Saludos. Edito: Cometí un error donde dije "sucederle lo contrario", quise decir "sucederle lo mismo", no sé en que tengo la cabeza...:o |
Negativo, está con sus paquetes, esa opción ya la conozco, por eso te decía de la diferencia, sino no estarían en igualdad de condiciones, espero que en un proyecto mas complicado la diferencia no sea tan grande.
;) Y gracias |
La razón del tamaño del ejecutable es que Lazarus carga por defecto una cantidad de información para la compilación, una vez realizado tu programa y queriendo distribuirlo, generas un ejecutable quitando esas opciones y listo, queda pesando casi lo mismo que el que genera delphi, o si te da pereza puedes usar Strip y Upx.
|
Esto último es muy relativo. Delphi, por defecto, también guarda información para depuración y aún así su ejecutable no es tan grande como el de Lázarus. Yo seguí los pasos que dan en el primer enlace que puso rretamar y no disminuye ni un byte el tamaño.
// Saludos |
Esta es la prueba que acabo de hacer:
Proyecto con 1 formulario en blanco Sin optimizaciones = 12.669KB Con optimizaciones = 1.607KB Desmarco generar información para la depuración Marco eliminar símbolos del ejecutable, enlazado inteligente, Mas pequeño en lugar de mas rápido. Resumen, se puede reducir más si usas Strip y Upx, o marcando y desmarcando otras opciones, pero no recuerdo cuales mas en este momento. Saludos. |
mightydragonlor puedes decirme cuales fueron los pasos para lograr reducir el tamaño de esos fichero pues yo no lo he logrado. :confused:
Santiago |
Cita:
Saludos. |
Pero, como dije antes, en el caso de delphi, no tienes que quitarle la depuración para que el ejecutable tenga un tamaño razonable. En el caso de lázarus, esa es la única opción con la cual reduces considerablemente el tamaño, las otras sólo unos cuantos bytes.
// Saludos |
Esto realmente no viene al caso, ya que Lazarus solo es el IDE, FreePascal el compilador y GDB el depurador, no es como Delphi que tiene un solo paquete con todo super optimizado, el depurador de Lazarus no tiene muchas cosas que si encuentras en delphi, pero igual funciona y logra su cometido, pero una de las razones por la que el tamaño de los ejecutables son tan grandes es precisamente que GDB necesita muchas cosas dentro del .exe y en unos formatos específicos, si compresiones y demás cosas, ya que como este ha sido un desarrollo independiente de el de Lazarus, no es como el equipo de desarrollo quisiera, creo que por ahí estaban haciendo un depurador, sino estoy mal era el mismo equipo de Lazarus, que corrija todas estas cosas y esté mas integrado con el IDE, además de ser mucho mejor, algo mas parecido al de Delphi y Visual Studio, pero solo hasta ahí sé.
|
Caray. Pues lo que viene al caso es que se obtiene un ejecutable gigantezco. Las razones ya me parecen lo de menos.
// Saludos |
Cita:
|
Sobre el tamaño de los ejecutables:
Cita:
|
Gracias por el dato Casimiro, si bien es verdad que Delphi produce exe's pequeños, pos así Lazarus los produzca grandes, no les veo mayor importancia, ya que se puede reducir =)
|
Cita:
Cita:
|
Cita:
El ejecutable generado en lazarus es más grande, como ya se ha indicado, porque incluye mucha más (o de distinta forma) información para depuración que el que necesita delphi con su compilador, que están hechos el uno para el otro, sin embargo, lazarus usa un deparador externo (de terceros) que sirve para otros lenguajes. Lo de comprimir con upx, desde luego, ahí tienes razón. |
Hola, yo solo marco:
-Visualizar números de líneas en los errores de tiempo de ejecución en trazados inversos (-gl) -Usar archivo externo de simbolos de depuración para gdb (-Xg) Con esto, para un formulario en blanco, pasa de 13.384 KB a 1.608 KB, sin perder la depuración. Un saludo |
Gracias por tu aportación.
Y bienvenido a clubdelphi :) |
Muchas gracias a vosotros. Aunque sin registrarme, he visitado mucho esta página, y me ha sido de gran utilidad.
|
A lo mejor digo una barbaridad, si es así cáiganme a palos.
Creo que mas importante que el tamaño del ejecutable es la cantidad de recursos que consume (memoria, almacenamiento, etc.). A mi me pasó con un proyecto que empezó con 4Mb y unas cuantas tablas y que ahora pesa 13 Mb y casi 100 tablas. Sin embargo el consumo de memoria entre uno y otro apenas se distingue (unos 50 Kb cuando abre uno varias ventanas) ya ni les digo de rendimiento de CPU pues es despreciable. Hace algunos meses me quebraba la cabeza pare reducir el tamaño del EXE pero tras analizar bien me di cuenta de que no hacia falta mover nada ya que no afectaba en lo más mínimo al sistema en el cual corra. De hecho una ventaja que encontré es que la aplicación per se es portable por lo que se puede ejecutar desde un pendrive sin hacer nada. |
Creo el consumo de la ram y cpu siempre debe ser manejado por el programador, si bien es cierto que un EXE de Lazarus no consume mucha RAM o CPU, no quiere decir que no pueda pasar lo contrario, yo siempre elimino ventanas y objetos que no necesito, con esto mantengo mi aplicación de 50 ventanas aproximadamente, en menos de 5k de memoria, si no hiciera lo que cuento, perfectamente podría alcanzar los 150k, saludos.
|
Cita:
|
Cita:
|
Ok, entonces 5 MB :)
Es pequeño, sí. |
Convengo en que el manejo del CPU y de la memoria corresponde a la prudencia del programador pero tambien a las necesidades del programa. A mi punto de vista. La mayoria de los ordenadores vienen ya con 2 GB de Ram y esto tiende aumentar cada día. 8 gigas de RAM ya no es algo extraordinario.
Yo prefiero mantener ciertas cosas en memoria, sobre todo mantengo tablas y querys abiertos para no tener que generar consultas nuevas y sobre cargar el Servidor o la Red, así que mi programa anda entre los 10 y 15 mb. Ya lo dice un teorema de la computación. Mientras más memoria, mas rapidez, menos memoria, menos rapidez. Y volviendo al tema original. Yo acabo de instalar Lazarus y lo estoy probando por primera vez. Y es cierto, los ejecutables pesan 18 megas aprox. Pero probe un un form con un siple botón y con un form con varios controles y acceso a datos. No cambió el tamaño. Creo que podremos construir programas bastante amplios con numerosos controles y se mantendrá en ese tamaño aproximadamente. |
Cita:
|
La franja horaria es GMT +2. Ahora son las 20:48:38. |
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