Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Gibt es optimierungs Direktivenzum kleiner machen? (https://www.delphipraxis.net/51696-gibt-es-optimierungs-direktivenzum-kleiner-machen.html)

dragi 17. Aug 2005 12:37


Gibt es optimierungs Direktivenzum kleiner machen?
 
Hallo zusammen,

ich habe eine Applikation von Delphi 5 auf Delphi 2005 migriert. Nach dem ersten kompilieren ist die Exe fast 1 MB gewachsen. Gibt es irgendwelche Compilerdirektiven um die Compilierung so zu optimieren das die Exe wieder kleiner wird? Oder gibt es sonstige Einstellungen die man tätigen kann um die Exe wieder kleiner zu bekommen? Ich habe zwar schon hier im Forum diese Möglichkeit des komprimierens mir einem externen Tool gefunden aber das ist nicht wirklich in unserem Sinne. Habt ihr eine Idee? Ich finde es langsam zum verzweifeln :(

Gruss

Dragi

himitsu 17. Aug 2005 12:42

Re: Gibt es optimierungs Direktivenzum kleiner machen?
 
Da gibt es keine Direktiven.
Es ist nunmal Tatsache, das die EXEn von CompilerVersion zu CompilerVersion anwachsen.

Du kannst aber Versuchen einige Units zu entfernen.
(nicht alles, was in USES angegeben ist, wird auch verwendet - wenn du also einen UnitNamen dort löschen kannst und es nachher noch Möglich ist, dein Programm zu compilieren, dann lass diese weg.)

Oder du nimmst von der VCL Abschied ... Luckie wird dir dabei bestimmt helfen >> siehe Hier im Forum suchennonVCL

dragi 17. Aug 2005 13:33

Re: Gibt es optimierungs Direktivenzum kleiner machen?
 
Wenn ich das projekt als Non-VCL umbauen will sind wir zu dritt bestimmt 2 Jahre dran :) Das ist keine gute Lösung...will niemand bezahlen :)

Aber noch eine frage aus Interesse:

Wenn in den Uses eine Unit aus der VCL aufgenommen wird, ist dann die komplette Unit in die Exe kompiliert oder nur die Teile die daraus gebraucht werden?

Gruss

Dragi

Bernhard Geyer 17. Aug 2005 13:37

Re: Gibt es optimierungs Direktivenzum kleiner machen?
 
Zitat:

Zitat von dragi
Wenn in den Uses eine Unit aus der VCL aufgenommen wird, ist dann die komplette Unit in die Exe kompiliert oder nur die Teile die daraus gebraucht werden?

Nur die benötigten. Eingebundene Resourcen landen aber immer komplett in der Exe.

himitsu 17. Aug 2005 13:47

Re: Gibt es optimierungs Direktivenzum kleiner machen?
 
Und dann haben viele Delphi-Units solche netten und oftmals nicht gerade kleinen Initialisierungs-Prozeduren, welche automatisch in der EXE laden, sobald die Unit eingebunden ist, selbst dann, wenn nichts anderes aus der Unit verwendet wird.


StringResourcen landen auch immer in der Unit, sobald diese irgendwo in der Unit aufgerufen werden (selbst wenn nicht genutzt).
Nur eine Stringresource, welche nirgends erwähnt wird, bleibt außen vor ... dieses Verhalten mußte ich leider auch schon machen ... also so perfekt ist der Compiler auch wieder nicht -.-''



[add]
Eine weitere Möglichkeit wäre noch:
Überlaß das Kompilieren einem älteren Compiler, welcher kleiner Dateien erschafft :zwinker:

ichbins 17. Aug 2005 14:54

Re: Gibt es optimierungs Direktivenzum kleiner machen?
 
Nein, das ist keine Möglichkeit, weil der ältere Compiler mit dem "ungültigen Stream-Format" in der DFM-Datei nichts anfangen kann (zumindest kann D3 Pro keine D7 Home Datei öffnen)

Dax 17. Aug 2005 15:00

Re: Gibt es optimierungs Direktivenzum kleiner machen?
 
Dann stell die Forms auf "Text" um, dann müssts gehen ;)

Olli 17. Aug 2005 17:02

Re: Gibt es optimierungs Direktivenzum kleiner machen?
 
Zitat:

Zitat von ichbins
Nein, das ist keine Möglichkeit, weil der ältere Compiler mit dem "ungültigen Stream-Format" in der DFM-Datei nichts anfangen kann (zumindest kann D3 Pro keine D7 Home Datei öffnen)

Dazu gibt es das Tool Convert.exe in deinem Delphiverzeichnis, welches dir auch ermöglich Delphi 7 DFMs wieder ins D3-Streamformat zu konvertieren.

Zitat:

Zitat von Dax
Dann stell die Forms auf "Text" um, dann müssts gehen ;)

1.) geht dies nicht nachträglich (zumindest weder in Delphi 5 noch 6 - muß man also manuell umkonvertieren), sondern nur bei der Erstellung einer DFM und 2.) kennt Delphi bis inkl. Version 4 nur das binäre DFM-Format! Auch wenn convert.exe da helfen kann. Ich frage mich dennoch wieso das Textformat so beliebt ist :gruebel: ... als ob die Leute nicht trotzdem die GUI in der IDE designen würden (zumal es noch die "Ansicht als Text" für Formulare gibt).

himitsu 17. Aug 2005 17:47

Re: Gibt es optimierungs Direktivenzum kleiner machen?
 
Also in D7 kann man es direkt in der Delphi-IDE konvertieren.

Man könnte natürlich auch den Text aus der "Ansicht als Text" rauskopieren und in einer leeren .dfm wieder abspeichern.

Ich glaub das die TextVersion beliebter ist, da sie von keinem bestimmten BinärFormat abhängig ist und eben von jedem beliebigen Programm als Text gelesen werden kann ... obwohl die BinärVersion doch bestimmt kleiner ist?

Bernhard Geyer 17. Aug 2005 18:13

Re: Gibt es optimierungs Direktivenzum kleiner machen?
 
Zitat:

Zitat von himitsu
Also in D7 kann man es direkt in der Delphi-IDE konvertieren.

Geht auch in D6
Zitat:

Zitat von himitsu
Ich glaub das die TextVersion beliebter ist, da sie von keinem bestimmten BinärFormat abhängig ist und eben von jedem beliebigen Programm als Text gelesen werden kann ... obwohl die BinärVersion doch bestimmt kleiner ist?

Nicht ganz. Sonderzeichen werden je nach Delphi-Version unterschiedlich kodiert.
Und in der Exe landet eh das Binärformat.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:40 Uhr.
Seite 1 von 2  1 2      

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-2025 by Thomas Breitkreuz