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 Wer macht meine Exe so groß? (https://www.delphipraxis.net/119325-wer-macht-meine-exe-so-gross.html)

gsh 24. Aug 2008 23:03


Wer macht meine Exe so groß?
 
Hi Leute

Ich habe ein Problem bei einem Projekt von mir. Und zwar hat die Exe 2,3MB ... das ist definitiv zu viel. Naja jetzt ist aber die große Preisfrage warum die Exe so groß ist.

Folgende "Dickmacher" hab ich schon gefunden:
~600KB wegen zwei großen Bildern
~400KB MadExcept

Jetzt fehlen noch 1,4MB die ich nicht verstehe. Wie kann ich herausfinden was meine exe so "dick" macht?

Wenn ich die Option "Mit Laufzeit Packages" anhacke dann komme ich auf eine 800KB große Exe. Aber damit bekomme ich Probleme auf anderen Computern.

Noch zur Info: Ich nutze in dem Projekt die Indy 10 und VirtualStringTree.

mr_emre_d 24. Aug 2008 23:07

Re: Wer macht meine Exe so groß?
 
Nunja ... :glaskugel: .... :?

Wäre schon hilfreich, wenn du genau sagen würdest, wie dein Projekt so ausschaut bzw was alles drinnen ist !

Wenn es möglich ist, meide VCL bzw. die Unit Forms ! Die Anwendungen sind dann extrem klein :)

MfG

gsh 24. Aug 2008 23:19

Re: Wer macht meine Exe so groß?
 
naja das Projekt ist ziemlich groß und jetzt auf nonVCL zusteigen -> keine Chance

das projekt hat 23 Units also ist es schwer zu sagen was alles drinnen ist.

Was ich aber sagen kann (ist mir grad aufgefallen):
Ich hab AsyncCalls drinnen und TUbuntuProgressBar.

Folgendes hab ich in der Liste für die Laufzeit Packages:
Zitat:

rtl;vcl;vclx;dbrtl;vcldb;adortl;dbxcds;dbexpress;v clib;ibxpress;xmlrtl;
vclactnband;inet;IntrawebDB_80_100;Intraweb_80_100 ;vclie;inetdbbde;inetdbxpress;
VclSmp;soaprtl;dsnap;bdertl;vcldbx;IndyCore100;Ind ySystem100;IndyProtocols100;
VirtualTreesD10;madBasic_;madDisAsm_;madExcept_
Was mich vorallem interessiert ist wie ich herausfinden kann was die Exe so groß macht.

Dani 25. Aug 2008 00:39

Re: Wer macht meine Exe so groß?
 
Wenn du Bilder in TImage lädst, werden die als Strings in den .dfm Dateien gespeichert. Vielleicht hast du einfach noch ein paar kleine Bilder drin?

gsh 25. Aug 2008 01:14

Re: Wer macht meine Exe so groß?
 
also wenn ich die zwei großen Bilder raustu dann ist die größte dfm datei 40KB groß die meisten haben aber nur wenige KB

Die Muhkuh 25. Aug 2008 01:34

Re: Wer macht meine Exe so groß?
 
23 Units, da wird auch nicht wenig Code dahinter sein, da kommt auch einiges zusammen. VirtualTreeView ist ja auch nicht klein.

sx2008 25. Aug 2008 02:50

Re: Wer macht meine Exe so groß?
 
Mit Icarus findest du unbenutze Units.
Wenn du diese Units entfernst, wird die Exe kleiner.
Wenn du dann zusätzlich noch die Überlauf- und Bereichsprüfung sowie die Assertions abschaltest sparst du noch etwas Code und das Programm wird schneller.
Du solltest aber immer eine Exe bereithalten, bei der diese Optionen nicht abgeschaltet ist, die der Benutzer bei Fehlersuche benützen kann.
StripReloc löscht die Relocationstabelle und schindet noch einige Bytes raus.

SirThornberry 25. Aug 2008 05:50

Re: Wer macht meine Exe so groß?
 
Bei 23 Units wird auch einiges an Debug-Infos drin stecken. Hast du diese mal in den Optionen abgeschalten?

Bernhard Geyer 25. Aug 2008 06:28

Re: Wer macht meine Exe so groß?
 
Zitat:

Zitat von gsh
naja das Projekt ist ziemlich groß und jetzt auf nonVCL zusteigen -> keine Chance

NonVCL müsstest du auch später mit höheren Entwicklungsaufwand "bezalen".

Zitat:

Zitat von gsh
Folgendes hab ich in der Liste für die Laufzeit Packages:
Zitat:

rtl;vcl;vclx;dbrtl;vcldb;adortl;dbxcds;dbexpress;v clib;ibxpress;xmlrtl;
vclactnband;inet;IntrawebDB_80_100;Intraweb_80_100 ;vclie;inetdbbde;inetdbxpress;
VclSmp;soaprtl;dsnap;bdertl;vcldbx;IndyCore100;Ind ySystem100;IndyProtocols100;
VirtualTreesD10;madBasic_;madDisAsm_;madExcept_

Diese Liste ist egal. Je nachdem wann du das erste mal auf Runtime Packages umgestellt hat bzw. was als Defaultwert auf deinem Rechner eingestellt steht da was anders drinn. Lösch die Liste, deaktiviere Runtimepackages und aktiviere es wieder um eine aktuelle Liste zu haben.

Zitat:

Zitat von gsh
Was mich vorallem interessiert ist wie ich herausfinden kann was die Exe so groß macht.

Definiere eine Ausgabepfad (z.B. Supfad .\Dcu) um zu sehen welche Units kompiliert werden und sortier die liste nach größe. Dann bekommst du schon mal einen Hinweise welche Unit für die Exegröße einen maximalen Aufschlag bedeuten könnte (Müssen aber nicht für diese größe sorgen). Sind dort unbekannte große Units vorhanden die über veraltete Uses-Anweisungen gezogen werden?

Phoenix 25. Aug 2008 08:53

Re: Wer macht meine Exe so groß?
 
Zitat:

Zitat von gsh
Und zwar hat die Exe 2,3MB ... das ist definitiv zu viel.

Wieso ist das denn definitiv zu viel?

Musst Du die .exe zwingend mit alten 1,44" Floppies wo nur 1,4 MB drauf passen verteilen?

Solange Du keine Infrastrukturprobleme mit Deiner riesigen Echse bekommst, ist alles im grünen Bereich. Wir haben hier eine 10 MB Exe, bei meinem Ausbildungsbetrieb haben wir 40MB exen ausgerollt. Und das war nirgends 'definitiv zu viel'.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:28 Uhr.
Seite 1 von 2  1 2      

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