Ver Mensaje Individual
  #10  
Antiguo 16-01-2013
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Reputación: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
MAXIUM, me parece que tienes mal concebido cómo afectan las dependencias entre bibliotecas y funciones a la compilación de un proyecto.

Cita:
Empezado por MAXIUM Ver Mensaje
[...] un ejecutable exageradamente grande en comparación, es porque contiene información innecesaria como librerias que cargan otras librerias y funciones que no se usaran.
Esto es absolutamente falso, al menos en Delphi y otros buenos compiladores.

Para explicarlo de forma sencilla, cuando se crea un módulo ejecutable, dentro de él solamente se incluyen los métodos y las funciones que el programa potencialmente empleará para su ejecución. Si usas una clase T1, que tiene tres métodos públicos: Proc1, Proc2 y Proc3, y ninguna línea del código fuente del programa hace referencia a Proc2 (ni a otro elemento que requiera de Proc2), ese método no será compilado ni incluido dentro del ejecutable, precisamente porque no se usa. Y lo mismo ocurre con las funciones "sueltas" de una biblioteca a las que el programa no haga referencia directa o indirectamente.

Cita:
Empezado por MAXIUM Ver Mensaje
Imagina que cargas una librería de 1mb y de ella solo usaras una función que pesa apenas 30kb, ¿no sería mejor darse el trabajo de escribir ese código por separado?
Si es una biblioteca DLL no hay discusión, toda la DLL se carga. Pero si con "librería" te refieres a una biblioteca de clases / funciones en código fuente, sólo se ha de incluir en el ejecutable lo que el programa necesita.

Cita:
Empezado por MAXIUM Ver Mensaje
Bueno, todo depende del lenguaje que se utilice.
Así es, y el compilador de Delphi está bastante bien diseñado para evitar incluir código innecesario en los ejecutables.

Por otra parte, comparto la idea de que hay que buscar en las opciones de compilación, revisar qué código es el que se está incluyendo al usar FireMonkey, y además qué posibles recursos se están enlazando, para intentar encontrar la razón del tamaño de esos ejecutables.

Saludos aclaratorios y desmitificadores.

Al González.
Responder Con Cita