Habe ein kleines "Backup-Program" geschrieben, das ich gerne von Diskette aus starten möchte. Das Problem: Die Anwendung ist ~450 kb groß. Das heißt, das ich höchstens ~1 MB für die Sicherheits-kopien habe. Da es sich zwar nur um *.cpp / *.hpp / *.txt / *.lnk - handelt ist es zwar nicht tragisch, aber auch nicht gerade schön.
kann ich da irgendwas dran ändern, ohne gleich in Assembler Programmieren zu müssen?? -- MFG RedEagle
evtl hilft es an den optimierungseinstellungen rumzuspielen bzw möglichst wenig "feste" variablen einbauen (also möglichst viele pointer benutzen und dann mit new speicher aufm heap anlegen) so wird dann einiges gespart -- class God : public ChuckNorris { };
Google mal nach "upx", ein Freeware-Executable-Packer für Windoof, Linux usw. Der quetscht Programme typischerweise auf ca. ein Drittel... -- Mit 40 Fieber sitzt man nicht mehr vor dem PC. Man liegt im Bett. Mit dem Notebook.
Gaaanz viele Templates benutzt ? Aus Versehen im Debug-Modus übersetzt ? Irgendwelchen anderen Kram (Bilder, Icons, ...) mit drin ? -- Reden ist Schweigen und Silber ist Gold.
FloSoft postete möglichst wenig "feste" variablen einbauen (also möglichst viele pointer benutzen und dann mit new speicher aufm heap anlegen) so wird dann einiges gespart
Das gilt aber nur für globale oder static-Daten. Lokale Daten in Funktionen werden (genau wie dynamische) erst zur Laufzeit angelegt; hier gibts also nichts zu sparen.
ao postete Das gilt aber nur für globale oder static-Daten. Lokale Daten in Funktionen werden (genau wie dynamische) erst zur Laufzeit angelegt; hier gibts also nichts zu sparen.
das hatte ich schon so gemeint. Du darfst aber auch nicht Membervariablen von Klassen, welche globale Instanzen haben, vergessen, die drücken auch an der größe einer exe -- class God : public ChuckNorris { };
je mehr librarys, je größer wird auch die anwendung, vor allem sollte man immer möglichst für so etwas dann debug-symbole weglassen -- class God : public ChuckNorris { };
nein debugsymbole sind daten, funktionen, variablen, etc welche der Compiler einbaut um das programm debuggen zu können, wenn man auf Release (o.ä) den Compiler stellt, entfernt bzw fügt er diese Debugsymbole gar nicht hinzu -- class God : public ChuckNorris { };