AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Wie bekomme ich die exe kleiner?
Thema durchsuchen
Ansicht
Themen-Optionen

Wie bekomme ich die exe kleiner?

Ein Thema von NicoleWagner · begonnen am 27. Jan 2020 · letzter Beitrag vom 8. Feb 2020
Antwort Antwort
Seite 1 von 7  1 23     Letzte »    
NicoleWagner

Registriert seit: 6. Jul 2010
167 Beiträge
 
Delphi XE3 Professional
 
#1

Wie bekomme ich die exe kleiner?

  Alt 27. Jan 2020, 20:34
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!
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#2

AW: Wie bekomme ich die exe kleiner?

  Alt 27. Jan 2020, 20:38
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.
  Mit Zitat antworten Zitat
Delphi-Laie

Registriert seit: 25. Nov 2005
1.474 Beiträge
 
Delphi 10.1 Berlin Starter
 
#3

AW: Wie bekomme ich die exe kleiner?

  Alt 27. Jan 2020, 21:19
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)
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#4

AW: Wie bekomme ich die exe kleiner?

  Alt 27. Jan 2020, 21:24
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.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#5

AW: Wie bekomme ich die exe kleiner?

  Alt 28. Jan 2020, 02:27
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.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (28. Jan 2020 um 02:30 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.798 Beiträge
 
Delphi 12 Athens
 
#6

AW: Wie bekomme ich die exe kleiner?

  Alt 28. Jan 2020, 08:05
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
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Neumann

Registriert seit: 6. Feb 2006
Ort: Moers
536 Beiträge
 
Delphi 12 Athens
 
#7

AW: Wie bekomme ich die exe kleiner?

  Alt 28. Jan 2020, 08:06
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.
Ralf
Gruß vom Niederrhein
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Wie bekomme ich die exe kleiner?

  Alt 28. Jan 2020, 08:32
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
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Wie bekomme ich die exe kleiner?

  Alt 28. Jan 2020, 08:34
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)
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#10

AW: Wie bekomme ich die exe kleiner?

  Alt 28. Jan 2020, 09:06
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
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 7  1 23     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:34 Uhr.
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