Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Kleinere *.EXE (https://www.delphipraxis.net/36769-kleinere-%2A-exe.html)

sniper_w 25. Dez 2004 14:47


Kleinere *.EXE
 
Hallo.
Die Frage ist ganz einfach : Kann man irgend was tun, um kleinere *.exe zu bekommen (mit VCL versteht sich), und wenn ja wie ? Ich weiss, dass sich vieles hineinkompiliert, wovon man nich einmal 10% braucht ? Danke im voraus.

P.S.
Bitte geben Sie mir keine vorschläge "Dann versuch´s mal ohne VCL", weil ich das schon lange tue, habe auch eingen "Frame" entwickelt.
Danke nochmals.

fkerber 25. Dez 2004 14:49

Re: Kleinere *.EXE
 
HI!

[google]"upx"[/google]
Aber man sollte sich über die Folgen im klaren sein ...


Ciao Frederic

Dax 25. Dez 2004 14:57

Re: Kleinere *.EXE
 
Welche Folgen soll UPX-Packaging denn haben? Bitte erklärs mir mal kurz, UPX gefällt mir :)
Falls die Folgen wirklich "schlimm" sein sollten, mache ich lieber mein eigenes Format :stupid:

fkerber 25. Dez 2004 15:13

Re: Kleinere *.EXE
 
Hi!

So wie es mir erklärt wurde, hebelt es das Speichermanagement von Windows aus, da diese Exe dann immer komplett geladen sein muss.
Somit hat man dann zwar eine kleinere Exe, die aber dafür viel Ram verbraucht.


Ciao Frederic

Luckie 25. Dez 2004 17:27

Re: Kleinere *.EXE
 
Genau. Die Exe muss eben erst vollständig entpackt werden und wohin? Eben in den Arbeitsspeicher.

Dax 25. Dez 2004 17:28

Re: Kleinere *.EXE
 
Dann werde ich UPX so schnell wie möglich vergessen :mrgreen:

Luckie 25. Dez 2004 17:39

Re: Kleinere *.EXE
 
Na ja. Es ist immer eine Sache des abwägens. Wenn du viele Bitmaps als Ressourcen im Programm hast, dann ist es schleciht. Aber bei kleinen (non)VCL Programme ist es nicht weiter schlimm.

bigg 25. Dez 2004 17:52

Re: Kleinere *.EXE
 
Zitat:

Genau. Die Exe muss eben erst vollständig entpackt werden und wohin? Eben in den Arbeitsspeicher.
Kompression ist schon Zeit mehr als 15 Jahren Standard. Wer so denkt, darf diese Formate nicht mehr verwenden:
PNG, OGG, MP3, JPEG, MPEG, GIF, ZIP, 7ZIP, RAR, Komprimierte Avi's, TAR usw.

Denn all diese Formate benötigen mehr Speicher.
Sie haben aber auch viele Vorteile, die ihr alle zu schätzen gelernt habt.

Hador 25. Dez 2004 17:56

Re: Kleinere *.EXE
 
Also ich benutze für fast alle meine Programme UPX, denn die sind ungepackt im normalfall ca 1/2 MB groß und so überwiegt meines erachtens der Nutzen von UPX, denn 500 kb mehr Belastung machen bei einem halben GB Arbeitsspeicher nicht viel aus.

Wie Luckie schon gesagt hat sollte man es aber für sehr große Sachen nicht umbedingt mehmen.

Hansa 25. Dez 2004 18:18

Re: Kleinere *.EXE
 
Um was geht es denn jetzt ? Um das packen der EXE ? Oder doch um eine möglichst kleine EXE ? Habe Programm von 6.2 MB gezippt auf 2.2 MB. Ich kann es ja auch direkt aus Winzip raus starten. :P

Dann mache ich aber lieber erst mal die EXE kleiner. Warum sagt keiner was von Compiler und Linker-Optionen ? Das besagte Programm hatte gestern nämlich noch 2.0 MB. :shock: Ich hatte an den Optionen rumgespielt. Wenn ich die optimal einstelle, dann werde ich wohl von jetzt 6.2 auf 1.8 MB kommen. Als allererstes würde ich das mal alles checken. Vor allem die Debug-Sachen !

Luckie 25. Dez 2004 18:18

Re: Kleinere *.EXE
 
Bei diesen Formaten ging es im wesentlichen darum sie klein zuhalten, weil es damals noch keine CD-ROMS gab, sondern nur Disketten mit 1,4 MB und DSL noch nicht standard war und man solche Daten per Internet übertragen wollte. Die Hardware des Computers war eigentlich nebensächlich.

Chewie 25. Dez 2004 18:20

Re: Kleinere *.EXE
 
Code- und Datenteile einer Anwendung liegen sowieso immer im Speicher, wenn sie ausgeführt werden, egal ob UPX oder nicht. Der Unterschied kommt erst zu Tragen, wenn man sich die Ressourcen ankuckt: Die werden bei Exe-Dateien nämlich erst geladen, wenn sie gebraucht werden. Wäre das anders, wär das Ausführen eines 300MB-SFX-Archivs alles andere als ein Zuckerschlecken :)

Bei UPX-gepackten Anwendungen ist der Resourcen-Teil für das Betriebssystem nicht erkennbar, es wird also alles in den Speicher geladen. Bei kleinen Anwendungen alles kein Problem, aber bei Anwendungen, die viel Ressourcen mitnehmen ist es ungeeignet.

MathiasSimmack 25. Dez 2004 19:24

Re: Kleinere *.EXE
 
Zitat:

Zitat von Chewie
Wäre das anders, wär das Ausführen eines 300MB-SFX-Archivs alles andere als ein Zuckerschlecken :)

Ist es bei SFX-Archiven nicht eher so, dass es sich um ein kleines Programm handelt, und bei dem die zu entpackenden Dateien schlicht und einfach angehangen worden sind? Ich glaube nicht, dass es sich dabei um Ressourcen im Sinne des Wortes (wie Bitmaps, Strings oder Versioninfos) handelt. Aber ich lasse mich gern belehren. ;)

Chewie 25. Dez 2004 19:38

Re: Kleinere *.EXE
 
@Mathias: Hm, ehrlich gesagt weiß ich es auch nicht, aber es erschien mir logisch. Ich weiß nicht, ob eine EXE-Datei noch ausführbar ist, wenn man an deren Ende noch wahllos Daten anhängt.

Hehe, aber man kanns ja ausprobieren :)

Hm, hab das eben mal probiert, die Datei ist noch ausführbar :(
Nun ja, ändert trotzdem nichts an der Richtigkeit meines obigen Textes (hoff ich dich mal :duck: )...

dizzy 25. Dez 2004 20:58

Re: Kleinere *.EXE
 
Zitat:

Zitat von bigg
PNG, OGG, MP3, JPEG, MPEG, GIF, ZIP, 7ZIP, RAR, Komprimierte Avi's, TAR usw.

Denn all diese Formate benötigen mehr Speicher.

Nicht unbedingt - zumindest bei den Film- und Audioformaten ist das (meist) anders, da diese in Chunks/Frames/Blocks/*yournamehere* übetragen, und auch geladen+verarbeitet werden. Zwar hat ein einzelnes Bild durch das Verwalten von Zusatzinformationen Speicheroverhead einem unkomprimierten Bild gegenüber, aber es ist nicht so, dass das gesamte File im RAM vorliegen müsste :!:
Was die Archivformate (ZIP, RAR,...) angeht, so sind diese nur schlecht vergleichbar, da sie einem völlig anderen Zweck als UPX oder die Medienformate dienen. In ihnen soll lediglich der Platz minimiert werden, zum lagern. Sie sind (auch wenn der Zipper von XP das (begrenzt) möglich macht,) nicht dazu gedacht, dass man direkt aus ihnen heraus anwendet.

Luckie 25. Dez 2004 21:13

Re: Kleinere *.EXE
 
Startet man eine Anwendung direkt aus einem Archiv, wird sie in das temporäre Verzeichnis entpackt und dann von da aus gestartet.

bigg 25. Dez 2004 21:52

Re: Kleinere *.EXE
 
Zitat:

Nicht unbedingt - zumindest bei den Film- und Audioformaten ist das (meist) anders, da diese in Chunks/Frames/Blocks/*yournamehere* übetragen, und auch geladen+verarbeitet werden. Zwar hat ein einzelnes Bild durch das Verwalten von Zusatzinformationen Speicheroverhead einem unkomprimierten Bild gegenüber, aber es ist nicht so, dass das gesamte File im RAM vorliegen müsste Exclamation
Was die Archivformate (ZIP, RAR,...) angeht, so sind diese nur schlecht vergleichbar, da sie einem völlig anderen Zweck als UPX oder die Medienformate dienen. In ihnen soll lediglich der Platz minimiert werden, zum lagern. Sie sind (auch wenn der Zipper von XP das (begrenzt) möglich macht,) nicht dazu gedacht, dass man direkt aus ihnen heraus anwendet.
Das ist ja schön und gut, aber du benötigst mit komprimierten Daten trotzdem mehr Speicher. :lol:
So jetzt aber wieder zurück zum Thema!

The-X 26. Dez 2004 09:42

Re: Kleinere *.EXE
 
man kann UPX auch anweisen keine Resourcen zu Komprimieren, man sollte vllt einfach mal die Hilfe aufrufen
Upx.exe -?

Ultimate Packer for eXecutables
Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
UPX 1.25w Markus F.X.J. Oberhumer & Laszlo Molnar Jun 29th 2004

Usage: upx [-123456789dlthVL] [-qvfk] [-o file] file..

Commands:
-1 compress faster -9 compress better
--best compress best (can be very slow for big files)
-d decompress -l list compressed file
-t test compressed file -V display version number
-h give this help -L display software license

Options:
-q be quiet -v be verbose
-oFILE write output to `FILE'
-f force compression of suspicious files
--no-color, --mono, --color, --no-progress change look

Backup options:
-k, --backup keep backup files
--no-backup no backup files [default]

Overlay options:
--overlay=copy copy any extra data attached to the file [default]
--overlay=strip strip any extra data attached to the file [dangerous]
--overlay=skip don't compress a file with an overlay

Options for dos/com:
--8086 make compressed com work on any 8086

Options for dos/exe:
--8086 make compressed exe work on any 8086
--no-reloc put no relocations in to the exe header

Options for dos/sys:
--8086 make compressed sys work on any 8086

Options for djgpp2/coff:
--coff produce COFF output [default: EXE]

Options for watcom/le:
--le produce LE output [default: EXE]

Options for win32/pe & rtm32/pe:
--compress-exports=0 do not compress the export section
--compress-exports=1 compress the export section [default]
--compress-icons=0 do not compress any icons
--compress-icons=1 compress all but the first icon
--compress-icons=2 compress all but the first icon directory [default]
--compress-resources=0 do not compress any resources at all
--strip-relocs=0 do not strip relocations
--strip-relocs=1 strip relocations [default]

file.. executables to (de)compress

This version supports: dos/exe, dos/com, dos/sys, djgpp2/coff, watcom/le,
win32/pe, rtm32/pe, tmt/adam, atari/tos, linux/386

UPX comes with ABSOLUTELY NO WARRANTY; for details type `upx -L'.

wo mir --compress-resources=0 do not compress any resources at all ins Auge fallen würde :mrgreen:

Luckie 26. Dez 2004 10:09

Re: Kleinere *.EXE
 
Aber ob es dann noch viel sinn macht UPX zu benutzten?

MathiasSimmack 26. Dez 2004 10:14

Re: Kleinere *.EXE
 
Zitat:

Zitat von Chewie
@Mathias: Hm, ehrlich gesagt weiß ich es auch nicht, aber es erschien mir logisch. Ich weiß nicht, ob eine EXE-Datei noch ausführbar ist, wenn man an deren Ende noch wahllos Daten anhängt.

Hehe, aber man kanns ja ausprobieren :)

Hm, hab das eben mal probiert, die Datei ist noch ausführbar :(

Ähem, das hätte ich dir auch vorher sagen können. ;) Auf die Weise habe ich damals mit TurboPascal mal einen Installer (im weiteren Sinn) geschrieben. Der war auch bloß eine kleine Exe mit fester Größe, an die ich die zu kopierenden Daten rangehangen habe.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:54 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz