Kompilierzeit



  • Hallo,

    ich habe da eine Frage bezüglich der Kompilierzeiten beim Borland C++ Builder.
    Ich arbeite seit längerem an einem Projekt (rund 3000 Lines of Code + eine TeeChart komponente, einige Forms etc...) was stetig im Umfang wächst. Auf einer 1GHz Maschine und dem BCB5 brauch das komplette Projekt zum kompilieren ca. 30 Sekunden (wenn zB. eine Header-Datei geändert wurde).
    Auf einer 3GHz Maschine oder dem auch mit dem BCB6 kamen ähnliche Zeiten zustande (25 Sekunden).
    Wenn ich nur in einer Methode etwas ändere dauert es ca. 5 - 10 Sekunden.
    Zur Zeit wird eine einzige Exe erzeugt (was für den Fall eher Vorteilhaft ist).

    Ich wollte euch fragen was ihr für erfahrungen mit diesem Problem gemacht habt? Muss man damit einfach leben oder komm ich um ein Auslagern in DLLs nicht drum herum? Wie lange müsst ihr warten?
    Ich finde es nicht mehr so trivial wenn ich an kniffligen Stellen jedes mal 30 Sekunden warten muss, bis ich den nächsten Step testen kann 🙂
    Und noch was, ist es normal das die unterschiede zwischen den Zeiten und der Leistung so gering sind? Bremst Borland da so aus?

    Gruß Christian



  • Hallo,

    Das Auslagern in Bibliotheken kan hier helfen. Es müssen nicht unbedingt dlls sein, statische libs reichen auch.
    Dann solltest du dir deine Headerorganistion mal genau anschauen. Versuch so wenig wie möglich Header in andere header einzubinden. Hier reichen oft auch Forward-Deklarationen. Desweiteren können die precompiled Header helfen. Versuch hier wenn möglich eine PreHeader-Datei pro Projekt zu verwenden, in die alle header kommen, die faktisch nie geändert werden.



  • Hallo Braunstein, danke für die schnelle Antwort 👍

    wie mache ich das denn mit den statischen Libs?
    Das mit den zuviel eingebundenen Headerdateien scheint logisch. Ich glaube da kann ich noch etwas optimieren.
    Wie meinst du das genau mit den precompiled Header? Wie kann ich das anwenden? Sind das Einstellungen?

    Danke,

    Christian



  • Eine lib erzeugst ganz einfach über Datei/neu/Bibliothek. Die enstehende lib mußt du dann nur noch zu deinem Projekt hinzufügen.
    Zu precompiled header
    Geh einfach in das Menu Projekt/Optionen/Compiler. Hier mal ein Link zur Verwendung
    http://web.archive.org/web/19990421141024/www.bcbdev.com/articles/pch.htm



  • Hallo

    zum Thema DLL siehe auch hier.
    zum Thema Compilerbeschleunigung siehe hier.

    bis bald
    akari



  • @akari
    Bezüglich deines zweiten Links habe ich eher negative Erfahrungen gemacht. Klar, die Compilierung wird beschleunigt, falls es denn überhaupt funktioniert. Bei mir konnten einige Projekte garnicht kompiliert werden. Dann gab es häufiger Abstürze, teilweise mit zerschossenen Code. Ich hab dieses Tool dann schnell wieder entfernt.



  • Hallo

    ich habe damit keine Probleme (soindern nur den Zeitvorteil), auch bei meinem 100+ Unitprojekt.

    bis bald
    akari


Anmelden zum Antworten