Delphi-PRAXiS
Seite 1 von 7  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Wie bekomme ich die exe kleiner? (https://www.delphipraxis.net/203240-wie-bekomme-ich-die-exe-kleiner.html)

NicoleWagner 27. Jan 2020 19:34

Wie bekomme ich die exe kleiner?
 
Meine exe kann nicht viel, doch sie bringt 15 MB auf die Waage.
Ich habe schon alle DB-Komponenten entfernt. Doch die Liste, was noch "inkludiert" ist, die ist gar lange.
Wie bringe ich mein Programm am effizientesten auf eine kleine Größe?
Gibt es einen Weg, die IDE (XE 3 Professional), diese Arbeit machen zu lassen?

Danke!

DieDolly 27. Jan 2020 19:38

AW: Wie bekomme ich die exe kleiner?
 
Zitat:

Meine exe kann nicht viel, doch sie bringt 15 MB auf die Waage.
Stell erstmal im Projektexplorer die Build-Konfiguration von Debug auf Release um.

Delphi-Laie 27. Jan 2020 20:19

AW: Wie bekomme ich die exe kleiner?
 
Zitat:

Zitat von NicoleWagner (Beitrag 1456111)
Wie bringe ich mein Programm am effizientesten auf eine kleine Größe?

Darauf habe ich einen Antwortenblock in petto:

1. Möglichst kleine / frühe Delphiversion verwenden
2. NonVCL (eigentlich nur Luckies Domizil)
3. Nicht benötigte Units entfernen
4. benötigte Units abspecken, ggf. nur benötigten Code extrahieren und entsprechende Unit(s) entfernen
5. Debuginformationen in Compiler/Linker entfernen:
Projekt -> (Standard)Optionen -> Compiler
Haken bei
- Optimierung an
- bei [Laufzeitfehler] und [Debuggen] alles weg
6. Wohl in Projektdatei: RTTI:
{$weaklinkrtti on}
{$rtti explicit methods([]) properties([]) fields([])}
7. KOL-(System-)Units verwenden
8. Units ohne RTTI nochmals compilieren (lassen), sofern möglich
(9. upx)

DieDolly 27. Jan 2020 20:24

AW: Wie bekomme ich die exe kleiner?
 
Zitat:

Darauf habe ich einen Antwortenblock in petto:
Das würde ich aber nur in der Release-Konfiguration machen (und selbst hier braucht man es nicht). Nicht in der Debug.

himitsu 28. Jan 2020 01:27

AW: Wie bekomme ich die exe kleiner?
 
Delphi-Quellcode:
Nicht benötigte Units entfernen
hilft fast immer.
Eigentlich lässt der Delphi-Compiler alles weg, was nicht verwendet wurde,
aber in vielen Units gibt es einen großen Initialisazionsblock, wo Klassen initialisiert werden, aber damit werden sie auch "benutzt", selbst wenn sie nicht wirklich genutzt werden, aber da sie "benutzt" werden, ist deren Code somit immer im Programm drin, sobald diese Unit irgendwo eingebunden wurde.
Auch Ressourcen, die in diesen Units eingebunden werden, sind dann immer drin, da man leider nicht angeben kann, dass diese Ressoucen nur gelinkt werden sollen, wenn bestimmte Funktionen/Klassen einkompiliert wurden.

Das mit dem Initialisazionsblock ist die Schuld altmodischer/blöder Programmierer, denn hätten sie die Initialisation z.B. in einen ClassConstructor gelegt, dann wäre alles nur drin, wenn diese Klassen dann "wirklich" benutzt wurden.


Ansonsten sind natürlich solche Profile, wie Debug und Release, genau dafür da.
Eine Konfiguration für die Entwicklung und eine Andere für den normalen Betrieb.

Sherlock 28. Jan 2020 07:05

AW: Wie bekomme ich die exe kleiner?
 
Bist du fertig mit der Entwicklung? Sind alle Fehler draußen? Berichten die Anwender von einer hervorragenden Usability? Langweilst Du Dich? 15MB sind nicht groß. Gemessen an Terabyte Festplatten, Gigabyte Arbeitsspeicher und Gigabit Netzwerken schonmal gar nicht. In meinen Augen ist Exe-Größe etwas, das man getrost ans Ende der Entwicklung schieben kann. Du kannst natürlich noch den Weg der restlichen Welt gehen und winzige Exen durch die Beigabe von tausenden DLLs, BPLs und sonstigen Hilfsdateien, deren Versionierung ab dann minutiös beachtet werden will erkaufen. Ich würde es lassen. Administratoren übrigens, lieben monolithische Exen.

Sherlock

Neumann 28. Jan 2020 07:06

AW: Wie bekomme ich die exe kleiner?
 
Was bringt eine kleinere EXE? Platz sparen auf der Platte - eher uninteressant wenn man 10 MB sparen kann.

Wird das Programm schneller wenn die EXE kleiner ist - kann ich mir nicht vorstellen.

KodeZwerg 28. Jan 2020 07:32

AW: Wie bekomme ich die exe kleiner?
 
Am schmalsten wird es wenn Du auf No-VCL umsteigst.
Je nach Fall, mal mehr mal weniger kompliziert, Luckie kennt sich damit gut aus und hat super Einsteigerfreundliche Tutorials auf seiner Web-Page.
Da kann es schon vorkommen das aus Deiner 15MB Datei eine 50KB Datei wird.

Alternative I:
Downloade Dir einen exe-Packer wie UPX (z.Bsp.) und komprimier das Resultat.

Alternative II:
Komprimier mit 7zip oder RAR5 Deine Datei als SFX-Archiv, so bleibt der Transfer schmal aber beim Endverbraucher pumpt es sich wieder auf volle Größe aus.
Sollte in der heutigen Zeit kein Problem darstellen, Speicher ist billig :-D

KodeZwerg 28. Jan 2020 07:34

AW: Wie bekomme ich die exe kleiner?
 
Zitat:

Zitat von Neumann (Beitrag 1456138)
Wird das Programm schneller wenn die EXE kleiner ist - kann ich mir nicht vorstellen.

Das Programm an sich nicht, aber der Start des Programms, da weniger geladen werden muss. (Messbar nur mit mechanischen Festplatten, bei SSD ist es Wurst)

Codehunter 28. Jan 2020 08:06

AW: Wie bekomme ich die exe kleiner?
 
IMHO nehmen indirekt einkompilierte Binärresourcen einen nicht unerheblichen Teil der EXE ein. Grad wenn man externe Komponenten wie Devexpress verwendet. Ich habe mal einen Resourceneditor genommen und aus einer 30-MB-EXE alles rausgeworfen was nach Bitmap, AVI etc. aussah. Am Ende war sie noch 9 MB groß. Lief zwar nicht mehr gescheit, aber sowhat, Hauptsache die EXE war kleiner :-D


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:47 Uhr.
Seite 1 von 7  1 23     Letzte »    

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