Discussion:
Komponenten in dll auslagern
(zu alt für eine Antwort)
Jens Steinführer
2003-07-17 18:46:40 UTC
Permalink
hallo,

ich bastel gerade an einem Programm, welches später übers Internet
abgedatet werden soll. Um die Datei möglichst klein zu halten, habe
ich Icons, Buttons und Hintergrundbilder in eine dll gepackt.

Das Programm hat nun immernoch 1,7 MB (dabei ist es noch gar nicht
fertig) Nun habe ich überlegt, ob man nicht die Komponenten, die sich
höchst wahrscheinlich nicht ändern, auch auslagert.

Erster Ansatz war bpl. Doch dann will das Programm verzweifelt die
Standard-Dateien vcl40.bpl,... Am Ende habe ich dann 5,xx MB statt 1,7
MB, was ja totaler Quatsch ist. - Ich wollte doch unnötigen
Datentranzfer übers Internet vermeiden.

Dann kam mir der Gedanke, die reinen Komponenten in eine extra dll zu
packen. Die dll soll nur als Komp-Träger fungieren, also keine eigenen
Funktionen durchführen.

Macht das überhaupt Sinn, den Gedanken weiter zu verfolgen? Nicht dass
man in der Anwendung eh eine Verbindung zu den normal generierten
Komp. herstellen muss und dann keinerlei Verringerung der Dateigröße
erreicht.

MfG
Jens Steinführer
Marian Aldenhoevel
2003-07-18 08:40:37 UTC
Permalink
Hi,
Post by Jens Steinführer
Macht das überhaupt Sinn, den Gedanken weiter zu verfolgen?
Nein.

Komponenten können nur wie "richtige" Komponenten benutzt werden,
wenn sie als Runtime-Package vorliegen. Wie Du richtig bemerkt
hast, brauchst Du dann auch die Packages, von denen Deine
Komponenten abhängen.

Die Netto-Vergrößerung stammt daher, daß in Borlands Packages
natürlich alles enthalten sein muss, was irgendwann mal von
irgendwem verwendet werden könnte. Aus Deinem statisch gelinkten
Programm aber kann alles rausfliegen, was nicht verwendet wird.

Unser Smart Linker macht dabei einen recht guten Job, auch wenn
er durch moderne Sprachfeatures behindert wird :-).
Post by Jens Steinführer
Nicht dass man in der Anwendung eh eine Verbindung zu den normal
generierten Komp. herstellen muss und dann keinerlei
Verringerung der Dateigröße erreicht.
Du wirst keine Verkleinerung der Dateigröße erreichen.

Du kannst eventuell theoretisch erreichen, daß bei Änderungen
nur Teile des Systems neu übertragen werden müssen. In der Praxis
führt das aber so starken Versionskontroll-Kopfschmerzen, daß
doch wieder nur homogene Systeme erlaubt werden (alle Teile auf
demselben Build-Niveau).

In diesem Sinne ist die statisch gelinkte EXE die kleinste
Möglichkeit.

Ciao, MM
Jens Steinführer
2003-07-19 11:19:10 UTC
Permalink
Hallo,
"Unser" wie "der, den wir hier alle benutzen". Das Ding ist Bestandteil
Deines Delphi :-).
ich ahnte es schon ... Danke

Martin Behrens
2003-07-18 11:34:29 UTC
Permalink
Post by Jens Steinführer
ich bastel gerade an einem Programm, welches später übers Internet
abgedatet werden soll. Um die Datei möglichst klein zu halten, habe
ich Icons, Buttons und Hintergrundbilder in eine dll gepackt.
[...]
Post by Jens Steinführer
Macht das überhaupt Sinn, den Gedanken weiter zu verfolgen? Nicht dass
man in der Anwendung eh eine Verbindung zu den normal generierten
Komp. herstellen muss und dann keinerlei Verringerung der Dateigröße
erreicht.
Ich denke eher nicht. Prüfe eher, was ein komprimiertes Versenden und
halbwegs intelligente Patchprogramme bringen.


Martin
Loading...