Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 14 odgovora
  • 4.298 pregleda

Najnovija ↓

Uzrok velike razlike velicine .exe filea 18.09.2005. u 12:34 · pre 257 meseci #1
Kompailirao sam isti kod na VS .NET 2003/VC 7.0 i na Dev-Cpp 4.9.9.2.
Sa prvim mi je .exe bio 80 kb dok mi je sa drugim bio 500 kb.
Jeli to znaci da onaj sa VC ovisi o nekim vanjskim .dll-ima, a onaj sa Dev_Cpp ne?
Re: Uzrok velike razlike velicine .exe filea 18.09.2005. u 12:39 · pre 257 meseci #2
Nemam iskustva sa DevC++, ali pretpostavljam da si ukljucio (bolje receno nisi
sikljucio) DEBUG INFO iz drugog EXE-a...
Re: Uzrok velike razlike velicine .exe filea 18.09.2005. u 12:50 · pre 257 meseci #3
Evo pogledah sad Dev-C++ FAQ koji se nalazi u Help-u:

Citat:

The size of the executable generated is huged, why ?

Be sure you didn't check "Generate debugging information" in Compiler Options, Linker sheet

Re: Uzrok velike razlike velicine .exe filea 18.09.2005. u 13:15 · pre 257 meseci #4
Nadji program Dependency Walker (ili Viewer) i pogledaj oba exe-a. Uz MSVC dolazi programcic depends.exe koji radi isti posao.

Ovi programi analiziraju EXE file i prave spisak dll-ova od kojih taj EXE zavisi.

MSVC po defaultu koristi DLL runtime (Single-Threaded-DLL ili Multi-Threaded-DLL). Mozes da podesis compiler tako da se koristi staticka runtime biblioteka (promeni u Single-Threaded ili Multi-Threaded bez DLL).

yooyo
Re: Uzrok velike razlike velicine .exe filea 18.09.2005. u 15:50 · pre 257 meseci #5
Citat:
yooyoMSVC po defaultu koristi DLL runtime (Single-Threaded-DLL ili Multi-Threaded-DLL). Mozes da podesis compiler tako da se koristi staticka runtime biblioteka (promeni u Single-Threaded ili Multi-Threaded bez DLL).

yooyo

Moze biti do toga, nisam uopce obracao paznju na to, a u Dev-Cpp je iskljucen Debugging info.
Hvala.
Re: Uzrok velike razlike velicine .exe filea 18.09.2005. u 19:02 · pre 257 meseci #6
Citat:
yooyo
MSVC po defaultu koristi DLL runtime (Single-Threaded-DLL ili Multi-Threaded-DLL). Mozes da podesis compiler tako da se koristi staticka runtime biblioteka (promeni u Single-Threaded ili Multi-Threaded bez DLL).

yooyo

Nije do toga.
Jos sam otkrio pomocu "Dependancy walkera" da .exe iz Dev_Cpp-a ovisi o .dll-u vise.
Kako onda obrnuta razlika velicina?
Re: Uzrok velike razlike velicine .exe filea 18.09.2005. u 21:20 · pre 257 meseci #7
Koristeci razilicite kompajlere nikada nece dobiti isti izvrsni kod. Jedino sto mozes je da raznim opcijama podesis kompajler da optimizuje/smanji kod. MS-ov kompajler je dosta bolji od GCC-a koji DevCpp koristi. Ako volis da eksperimentises mogao bi da probas intelov kompajler za kojeg cujem da je najbolji.
Re: Uzrok velike razlike velicine .exe filea 18.09.2005. u 21:41 · pre 257 meseci #8
Citat:

MS-ov kompajler je dosta bolji od GCC-a koji DevCpp koristi.


Sve moze biti, ali 500 >> 80 ;)

P.S.

Mislim da greska u include-ovima moze cesto da proizvede veliki obj a ovaj kasnije
veliki exe.

Ako je tvoj projekat sastavljen od vise fajlova, pogledaj koji je obj znacajno veci
od ostalih...

Re: Uzrok velike razlike velicine .exe filea 19.09.2005. u 09:32 · pre 257 meseci #10
Ja imam recimo situaciju da se debug i release executable razlikuju za ~45MB (da, megabajta).
Odbijao sam da poverujem, ali tako je, debug info u exe-u koji je ~4.5 mega je oko
10 puta veci od samog exe-a.
Naravno za tako divne rezultate je koriscen GCC ;)
Re: Uzrok velike razlike velicine .exe filea 19.09.2005. u 10:17 · pre 257 meseci #11
Cim ukljucis #include <iostream> izvrsni fajla veoma poraste.
Ako ti ova klasa nije neophodna, pisi C programe, pa ce EXE biti mnogo manji.
U cilju smanjenja EXE fajla pogledaj:
http://aditsu.freeunixhost.com/dev-cpp-faq.html#largeexe
http://www.mingw.org/mingwfaq.shtml#faq-C++size
a ako hoces dopunsko smanjenje EXE fajla koristi UPX.
Ako ti se svidja cena po kojoj dobijas Dev-Cpp with Mingw/GCC 3.4.2 (0$), onda ces se lako prilagoditi i malo vecem izvrsnom fajlu.

Re: Uzrok velike razlike velicine .exe filea 19.09.2005. u 16:08 · pre 257 meseci #13
Da li uz Dev-CPP dobijaš alatku koja se zove "strip"? Ako da, probaj da je koristiš. exe će i dalje da bude veći nego kod VC++, ali će razlika ipak da bude manja.
Potpis
IOCC
Re: Uzrok velike razlike velicine .exe filea 24.09.2005. u 21:15 · pre 256 meseci #14
MS-ov kompajler bolji od GCC-a? - Kad bi se gadjali trotinetima... Doduse, mozda i jeste bolji kada se gleda ISKLJUCIVO Windows/x86 kombinacija.
Kad smo vec dosli do ove teme - predlazem Windows programerima da pogledaju DigitalMars C/C++ . Prenecu svoj tekst sa jednog drugog foruma: "Nista ne bi bilo interesantno u ovoj novosti da DM C/C++ kompajler ne prolazi (100%) sve Brian Malloy testove (Dr.Dobbs Journal 2002) ! Ove testove u potpunosti ne prolazi niti jedan kompajler. :) Vise o testovima: http://www.cs.clemson.edu/~malloy/projects/ddj2/ddj2.html . Ostale informacije o verziji 8.45 DMD C/C++ kompajlera: http://www.digitalmars.com/compiler.htm#new845 . PS. uskoro cu poceti da radim sve sto je potrebno za kompajliranje FLTK-a, FEW-a i CXX-a sa DMD C/C++".
Usput se izvinjavam sto je ova moja poruka nema veze sa temom - nemaju ni prethodne pa se niko nije zalio... :)
Potpis
Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin
Re: Uzrok velike razlike velicine .exe filea 27.09.2005. u 03:10 · pre 256 meseci #15
Citat:
leka: MS-ov kompajler bolji od GCC-a? - Kad bi se gadjali trotinetima... Doduse, mozda i jeste bolji kada se gleda ISKLJUCIVO Windows/x86 kombinacija.

Na tu kombinaciju sam i mislio. MS-ov kompajler ni ne moze da se gleda u nekoj drugoj kombinaciji (osim ako sam propustio vest da je Microsoft napravio kompajler za linux ili nesto drugo).
GCC je open source kompajler i ima ga za velik broj os-ova i raznih chipova i sigurno da nije posveceno toliko paznje optimizaciji za windows platformu koliko su to uradili ovi iz Microsofta. I pored ove cinjenice ne mora da znaci da je MS-ov kompajler bolji u optimizaciji za brzinu (npr. cuo sam da su se programeri PCSX 2 zalili da MS-ov kompajler ima losu optimizaciju za switch) ali ocigledno da moze da izbaci nepotreban/nekoriscen kod (bar bez dodatne intervencije nekih alata) sto rezultuje manjom velicinom fajla.
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme