Compiler Optimierungs HowTo?
-
Hoi!
Sagt mal kenn hier jemand ein gutes HowTo, wie ich den C++Builder-Compiler optimal einstelle? Da gibt es doch bestimmt Tricks, die Progs die hinten rauskommen kleiner oder schneller zu machen. Naja ich hab sowas schon mal für den MSVC-Compiler gesehen, aber noch nicht für Borland.
Wenn man dem nämlich sagt, er soll alle Debug-Infos usw. rausnehmen, wird das 250 kB Programm (welches ohne VCL läuft)aus welchem Grund auch immer ganze 700 kB gross, wenn ich dan wieder sage, er soll Debug-Infos reintun dann isses wieder 250 kB gross ... nee nee neeGruss, code_pilot
-
Wenn Dich nur die Größe stört, versuchs mal mit UPX.
[url] http://upx.sourceforge.net/ [/url]
-
naja bei mir sind die progs mit debug-info immer grösser als ohne. da ja dort zusätzlicher quellcode generiert wird, der ein debuggen erst möglich macht (ist natürlich nur zur designzeit sinnvoll). wenn du die packages deaktivierst, wird dein prog auch wieder grösser, da dann alle benötigten funktionen direkt mit in dein programm reinkompiliert (gelinkt) werden und nicht in den borland-dlls verbleiben, die du sonst deinem programm mitgeben musst. ein programm mit gelinkten laufzeitdll ist genauso (oder grösser) als eines ohne (wo halt nur die exe grösser ist).
von upx und anderen exe-packern würde ich abraten. dort wird zwar die grösse reduziert, allerdings auf kosten der ausführungsgeschwindigkeit, da ja erstmal alles wieder im arbeitsspeicher entpackt werden muss.
exception-handling kannst du auch rausnehmen, wenn du es in deiner anwendung nicht benötigst (ort des auftretens), geht nämlich auch alles auf die endgültige grösse der exe. rtti brauchste auch nur, wenn du zum beispiel dynamic_cast benutzen tust, ansonsten ist das auch recht unnötig (.o(denk)).
um die reine zeit zu optimieren, wenn du dein programm kompilierst, erstelle einfach einen separaten header. in diesen bindest du all die header deiner verwendeten units (filectrl.hpp usw.) und formulare-dateien ein und in den einzelnen dateien dann nur noch diesen einen header (vor #pragma hdrstop). dann wird der precompilierte header nur einmal erzeugt und nicht bei jeder abweichenden unit erneut. dadurch kann man erhebliche compiliergeschwindigkeitsverbesserungen (wow. was fürn wort. ;)) erzielen.
-
Original erstellt von Sunday:
auf kosten der ausführungsgeschwindigkeit, da ja erstmal alles wieder im arbeitsspeicher entpackt werden muss.Aber doch nur einmal, beim Start des Programmes. Danach steht es komplett (und ungepackt) im Speicher, Einfluss auf die Ausführungsgeschwindigkeit hat ein Exe-Packer also nicht nennenswert.