Avatar billede denniss Nybegynder
23. juni 2000 - 10:34 Der er 9 kommentarer og
1 løsning

Hvordan gør jeg min EXE mindre?

Hejsa jeg har lavet et fint lille program. Problemmet er at EXE filen fylder 1,4 mb.!!!

Jeg ved at kan man lave noget med at sortere ud i komponenterne så dem der ikke bliver brugt heller ikke kommer med i EXE filen, men hvordan?

det skal lige siges at jeg både bruger database komponenter og qreport komponenter... jeg vil sq blive glad for at kunne halvere "svinet"
Avatar billede speedy Nybegynder
23. juni 2000 - 11:14 #1
Du kan f.eks. fjerne nogle af alle de uses der er i toppen. Hvis du f.eks. har brugt en komponent i dit program, som du ikke bruger mere, er den ikke slettet oppe i uses. Derfor kan du roligt slette den. Du kan også prøve at slette en ad gangen, og husk at prøve at kompilere efter hver gang du fjerner en. Hvis du ikke kan kompilere, skal du tilføje den du lige har slettet.

Det var bare et af forslagene ;-)

/SpEeDy
Avatar billede pellelil Nybegynder
23. juni 2000 - 11:14 #2
Der findes allerede en (relativ ny) "tråd" om emnet:
(http://www.eksperten.dk/spm.asp?id=19487) hvor jeg lige har klippet lidt fra
(se nedenstående). Hvis du kigger under pkt. 3 så vil du kunne skære størrelsen af EXE filen væsentlig ned, men den "egentlige størrelse bliver ikke mindre", da du så i stedet skal anvende (samme med din EXE) en række "packages".

<SNIP>
1) Undlad at "Use" units som du alligevel ikke bruger.
2) Undlad at compile dit program med diverse debug-informationer: Project->Options->Compiler (fjern samtlige "checkmarks" under "Debuggeing)
3) Denne sidste mulighed vil nedbring størrelsen af din EXE-fil (meget), men vil ikke nedbringe hele størrelse. Et VB (VisualBasic) program behøver ikke af fylde ret meget det er fordi at et VB program kræver at der foruden programmet installeres et runtime library. Dette giver den fordel at EXE filen nedbringes (flere VB programmer bruger samme runtime-library, som således kun skal installeres en gang), men det giver samtidig den ulempe at programmet ikke kan køre med mindre runtime libralry'et er installeret. På samme måde kan du hved hjælp af packages oversætte dit Delphi program således at disse packages ikke linkes direkte ind i EXE filen, men i stedet ligger separat. Mange forsk. Delphi programmer kan således anvende samme packages (se evt. Project->Options->Packages), men på den anden side så skal du sørge for at disse installeres (programmet vil ellers ikke virker). Selvfølgelig skal du kun "medsende" de Packages som dit program gør brug af. Hvis du selv udvikler "biblioteker" og/eller komponenter skan du med fordel (størrelses mæssigt) pladcere disse i packages sålede at flere af dine programmer anvender samme packages.
</SNIP>
Avatar billede denniss Nybegynder
23. juni 2000 - 11:24 #3
Det er netop packages som kan nedbrige størrelsen, jeg synes at jeg gør præcis som hjælpen foreskriver, men alligevel har jeg samme store størrelse.
Avatar billede pellelil Nybegynder
23. juni 2000 - 11:34 #4
Husker du Project->Options->Runtime packages (afkryds "Build with runtime packages") ??
Avatar billede dj Nybegynder
23. juni 2000 - 13:13 #5
En anden måde er at comprimere sine exefiler, det kan gøres ved f.eks. at købe et program som ASPACK http://www.aspack.com/ det er godt nok lidt dyrt $49 .. men jeg vil også tro at der kan findes freeware komprimeringsprogrammer, hvis du søger lidt efter sådanne.

Disse programmer kan ihvertfald reducere størrelsen på dine exefiler med ca. 50% og det fungerer utroligt godt. Du kan jo prøve en trialversion af ASPACK så du kan se hvad det er for noget.

Held og lykke

Mvh. _DJ_
Avatar billede tlbdk Nybegynder
23. juni 2000 - 18:25 #6
Det med at bygge med runtime pakker er en dårlig ide, da de også skal med når du skal distribuerer dit program. Det giver en samlet størrelse der er størrer en den du startede med. En anden ting er hastighed, programmer køre langsommere når de skal kalde en runtime.

Først har du meget grafik i din application?
Hvis du har lige det i filer ved siden af og load dem når du starter din application.

Du kan også bruge XCL som er en pakke med meget små udgave af de standart delphi componenter. Men det er svært at bruge.

Men du kan også pakke din exe fil, jeg kan anbefale dig at bruge upx da det er bedre en aspack, open souce og gratis.

UPX:
http://wildsau.idv.uni-linz.ac.at/mfx/upx.html

XCL:
http://members.xoom.com/mr_bonanzas/
Avatar billede pellelil Nybegynder
23. juni 2000 - 19:12 #7
>dj
Med de priser vi har på hardware (herunder harddiske) i dag ser jeg ingen grund til at komprimere exefiler. Den eneste "valid" grund jeg ser til at komprimere noget er hvis det skal distribueres via internettet (eller andet "langsomt medie")

>tlbdk
Det at programmet bliver langsommere (ved brug af packages) er en sandhed med modificationer. Der er blot tale om hvorvidt der linkes på compile-tidspunktet eller run-tidspunktet, det vil igen sige at opstarten bliver (ikke mærkbart) "langsommere", men når først packages er loaded så forbliver de loadet mens programmet kører.
Avatar billede dj Nybegynder
23. juni 2000 - 19:36 #8
well, jamen nu var det jo netop fordi han ønskede at gøre sine exefiler mindre (og ikke købe en ny HD :-) og så ville jeg bare lige sige at komprimering altså også er en ganske god løsning. Jeg anvender altid komprimering af alle mine programmer før jeg sender dem ud på nettet, dette sker helt uden nedsættelse af afvekslingshastigheden (kan ihvertfald ikke mærkes på en processor hurtigere end 80486'er).. programmet bliver simpelthen bare udpakket i rammen istedet for at være direkte udpakket på disken. Dette gør det også betydeligt sværere for crackere at gå udenom serialbeskyttelser, så det gavner til flere formål.
Avatar billede pellelil Nybegynder
23. juni 2000 - 19:45 #9
Tjaee, smag og behag.
Avatar billede dj Nybegynder
23. juni 2000 - 19:58 #10
men som tlbdk siger så er UPX en bedre compressor end ASPACK .. specielt fordi den er gratis :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester