2-5 MB für eine
VCL-Anwendung (10-15 MB mit Debuginfos)
und knapp unter 1 MB für eine Consolen-Anwendung
sind inzwischen eigentlich normal.
Aber heute habe ich auch 'nen Terrabyte an HDD (keine 30 MB mehr)
sowie 16 oder gar 64 GB
RAM (nicht mehr nur 1 MB)
und 'nen Gigabit im Download (keine 56kbit).
Als Release kompilieren (ohne Debug-Infos) ... alternativ "mit externen TDS" für Debug
Dann kann man noch bei der
RTTI so Einiges abschalten, aber nur was deine eigenen Units/Klassen betrifft.
Standardmäßig enthält die erweiterte
RTTI jetzt auch PRIVATE, "falls" man auf Eigentschaften/Funktionen via
RTTI zugreifen wöllte.
https://docwiki.embarcadero.com/RADS...ctive_(Delphi)
Ansonsten ist inzwischen auch viel mehr in der
RTL und
VCL drin, was auch noch dazu kommt.
Würde Vieles nicht in er INITIALIZATION initialisiert, sondern in CLASS-CONSTRUCTOR, dann könnte der Linker vieles weglassen, was nicht benutzt wird.
(steht es aber in INITIALIZATION drin, dann wird es benutzt, selbst wenn es "eigentlich" nicht benutzt wird)
Leider können ungenutzte Ressourcen vom Linker nicht entfernt werden, da er nicht weiß ob sie genutzt werden.
(es ist leider nicht möglich eine Ressource z.B. an eine Klasse oder Methode zu hängen, um die Einbindung davon abhängig zu machen, ob der Teil gelinkt wurde)
Wurde eine
Unit sinnlos eingebunden und dann nicht benötigt, dann ist ihr Zeugs (INITIALIZATION und Ressourcen) dennoch mit drin und wiederum Das davon eingebundener Units usw.
Ich hab grade eben eine winzige Test-EXE erstellt, mit effektiv 20 Zeilen Code, und auf der Form 3 Panels, ein Memo und zwei Drag&Drop-Komponenten.
Delphi 11 -> 126 MB mit DebugInfos und 40 MB ohne. (leider enorm viele Abhängigkeiten, welche aber eigentlich nicht benutzt werden)