AW: Lazarus, EXE groß
6. Okt 2012, 20:03
Natürlich ist die Größe einer "leeren" EXE keine Aussage, was eine volle EXE später mal für eine Güte haben könnte.
Nur ein paar Beispiele:
- Die Anfangsgröße sagt nichts aus, wie es später mal wird.
> Wenn ich mit einer kleinen EXE anfange, aber pro Zeile Code kommt ganz viel dazu, dann kann es am Ende auch ganz Groß werden.
> Wenn ich mit einer rißigen EXE anfange, aber pro Zeile Code kommt nur wenig dazu, dann kann es am Ende auch kleiner werden.
- Die Größe der EXE sagt absolut nichts darüber aus, wie gut und sicher der darin enthaltene Code ist.
> Ich kann mit viel Code ganau viel Schrott produzieren, wie mit wenig Code.
Und das Wichtigste:
- Ein großer Code kann sicherer sein ... hauptsache er ist einfach und vorallem wartbar.
- Wenn man einen Code ganz klein und superschnell bekommt, dann kann es toll sein.
Aber wenn ich dann am Ende nur noch hochoptimierten Assemblercode hab, den kein Mensch jemals wieder verstehen kann und in dem man auch nie wieder was ändern könnte, dann bringt das einem nicht unbedingt sehr viel.
Und dann eben noch die Sache mit den Laufzeitbibliotheken:
Man kann eben nicht alles direkt mit vergleichen.
z.B. ein Delphi-Programm wo alles gleich drin ist,
oder ein ganz kleines Delphiprogramm, welches gegen Runtimebibliotheken gelinkt wurde, die man mitgeben müßte.
(ja, man kann sämtlichen Code in BPLs auslagern und hätte dann eine EXE, mit der Funktionalität eines kompletten MS Office, welche aber nichtmal 100 KB groß ist)
oder eben ein .NET-Programm, wo man auch noch ein rießiges Framewörk im Hintergrund braucht.
Aber die besten Beispiele sind Basic, PHP, JavaScript, wo nur eine winzige Textdatei nötig ist, man aber zusätzlich, wie beim .NET, ein "rießiges" Framework/Interpreter benötigt.
Wer wirklich nur auf die Dateigröße achtet, der sollte direkt mit Assembler anfangen.
siehe die geilen 64K-Programme
Nja, was man von sowas wie UPX halten kann, kann man hier im Forum auch schon öfters nachlesen.
Nein, für kleine Tools, welche nicht installiert werden, mag es manchmal OK sein, aber oftmals ist es eigentlich garnicht nötig, daß man auch noch das letzte Byte mit sonstwelchen windigen Tricks einspart.
PS: Bei Delphi und Lazarus kann man auch noch so Einiges einsparen, wenn man gewisse Resourcen und Realocationstabellen rausschmeißt.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
Geändert von himitsu ( 6. Okt 2012 um 20:15 Uhr)
|