Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Tamaño Grande Del Exe

Iniciado por Zeigon, 15 de Marzo de 2005, 03:05:18 PM

« anterior - próximo »

Zeigon

 pues no entiendo como haciendo un program tan pequeño como es:


#include <iostream>

using namespace std;

int multiply(int); //function to multiply a number by 10

int main(int argc, char * argv)
{
int num;

cout << "Enter a number to see it multiplied by 10: ";
cin >> num;

cout << "\n" << num << " * 10 = " << multiply(num) << endl;
}

int multiply(int n)
{
return n*10;
}


puede salirme un exe de 284kb y en total la carpeta del "proyecto" me ocupe 2.92mb!! he visto q lo q ocupa bastante es el archivo .pdb q pone q es Program Debug Database. Cómo puede ser que esa chorrada ocupe tanto? Vamos, que si haces un programa con más líneas se te va a los 10mb o cómo va eso?

El compilador es el de visual studio .net 2003.

gracias.
eigon
----------------------------------------------
El arca de Noe fue construida por amateurs.
El Titanic por profesionales.

zupervaca

 el pdb es parte del proyecto pero no del producto final, en este proyecto por lo que veo solo importa el exe y me imagino que te ocupara tanto por que abras linkado estaticamente alguna dll

sés

 Habrás compilado en modo DEBUG :P
Soy indeciso... ¿o no?

samsaga2

 Pues via g++...

Sin informacion DEBUG
Citar-rwxr-xr-x    1 victor   victor       4680 2005-03-15 17:18 a.out

y con DEBUG
Citar-rwxr-xr-x    1 victor   victor      14080 2005-03-15 17:19 a.out

Imagino que estas usando VC++. Recomiendo a cualquier programador que use compiladores Microsoft que tire las STL que traen por defecto a la basura (pues la basura en el mejor sitio que esta es en el cubo de la basura) y use alternativas (por ejemplo STLPort).

Ademas si tanto importa el tamaño optimiza el compilador por tamaño:

A ver a ver.... g++ -Os kk.cpp
Otia pero si ocupa mas  (ole)

Citar-rwxr-xr-x    1 victor   victor       4696 2005-03-15 17:21 a.out

CoLSoN2

 A partir de VS 7.1 la STL se cambió completamente y es bastante buena la que hay ahora. La del 6 ciertamente es una basura.
Manuel F. Lara
Descargar juegos indie  - blog sobre juegos indie y casual
El Desarrollo Personal.com  - blog sobre productividad, motivación y espíritu emprendedor

Zeigon

 tamaño de las carpetas con todos los archivos:

mode debug - 2,92mb
mode release - 1,13mb

seguiré mirando luego pa ver si quitándole más cosillas a la hora de compilar baja el tema. Aunque al menos el exe ahora ocupa 100kb.
eigon
----------------------------------------------
El arca de Noe fue construida por amateurs.
El Titanic por profesionales.

AgeR

 Prueba a quitar las "precompiled headers". No me acuerdo donde estaba, pero creo que por lo de code generation y tal.
Seguramente sea esto lo que te hace tener un proyecto tan grande.

BeRSeRKeR

 Ten en cuenta que esas cosas hacen que el tiempo de compilación sea menor (compilación incremental). Realmente no sé por qué tanta preocupación porque la carpeta de salida te ocupe tanto. Lo que cuenta es el ejecutable.

Saludos.
¡Si te buscan en nombre de la ley, huye en nombre de la libertad!!

shash

 Si te preocupa el tamaño del ejecutable, quita las librerias por defecto, añade solo las que uses, y finalmente, usa UPX en el ejecutable final. Y no deberias preocuparte tanto por los archivos intermedios, sobretodo en la version debug, donde acostumbran a ser gigantescos.

zupervaca

 es que incluso incluyendo librerias que no se usen el .net las elimina del ejecutable final, en propiedades del proyecto si revilas un poco veras esto o al acabar de compilar veras que te indica en la ventana de proceso los "discards dll", tambien en las propiedades del proyecto tienes opciones para optimizar para tamaño o velocidad, etc

yo creo que estas confundiendo el proyecto con .net y el producto final que sale, el proyecto con .net siempre ocupara megas o incluso gigas, pero el ejecutable o producto final que nos indicas no tiene ni que llegar a los 100kb

saludos

senior wapo

 Con el VC++ Toolkit 2003 me ocupa 106.496 con un simple:
cl prueba.cpp

Si optimizo, le quito RTTI y excepciones, se queda en 102.400:

cl prueba.cpp /O2 /GR- /GX-

ethernet

 Ejem...

con algunas opciones consigues tener un ejecutable de 4kb y sin usar ningún tipo de compresor, sólamente tocando las opciones del vc7.1



C:\temp\1>cl /O1    /MD    1.cpp  > basura
Compilador de optimización versión 13.10.3077 para 80x86 de Microsoft (R) C/C++
de 32 bits
Copyright (C) Microsoft Corporation 1984-2002. All rights reserved.


C:\temp\1>dir 1.exe
El volumen de la unidad C es 25-06-51
El número de serie del volumen es: AC24-DA18

Directorio de C:\temp\1

16/03/2005  22:16             4.096 1.exe
              1 archivos          4.096 bytes
              0 dirs  69.596.086.272 bytes libres



:P

senior wapo

 No creo que eso le guste, porque estas linkando contra la DLL runtime de C++. No se como se llamará la DLL porque el toolkit no soporta /MD (mas bien que le falta msvcprt.lib).

¿ Con que versiones de windows viene la DLL ?






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.