Hat wer Erfahrungen mit Workstations, Compilezeiten dem C++ Builder



  • wtf?? schrieb:

    Das heißt wenn man irgendwo eine Zeile bei euch im Projekt ändert und testen will muss man 5 Minuten warten? Ich glaube, da würde jeder Entwickler zugrunde gehen.
    Oder nur bei einem kompletten Rebuild?

    5min kompletter Rebuild - aber bei jeder Änderung am Projekt von anderen ist ein solcher fällig, da der C++ Builder häufig rumzickt. Und leider (obwohl ich schon viel verbessert habe) ist das Projekt noch recht stark vermascht, die includes in den Headern habe ich bereits weitgehend optimiert (und viele Dateien gesplittet um möglichst kleine Codeeinheiten zu haben), in den Sourcedateien steht das ganze aber noch aus.



  • jb schrieb:

    Du könntest auch die andere Rechner in Deinem Netzwerk einspannen für Dich zu kompilieren...

    Leider ständen dafür so gut wie keine Rechnerkapazitäten zur Verfügung.



  • wtf?? schrieb:

    Das heißt wenn man irgendwo eine Zeile bei euch im Projekt ändert und testen will muss man 5 Minuten warten?

    Ja, kann bei uns schon passieren. Wenn man nur in einer cpp etwas ändert und schon möglichst viel gecacht ist, dauert das Bauen der Dll wahrscheinlich nur 10-20 Sekunden. Aber bei etwas umfangreicheren Änderungen, vor allem in Headern, die paar mal verwendet werden, dauert das Bauen schon paar Minuten. Also, nicht ganz so schlimm, wenn man selber was macht und das testen muss. Aber wenn jemand ein bisschen Refactoring gemacht hat, kann man durchaus eine Stunde fürs Bauen (nur von den benötigten Modulen) einplanen.



  • Nachdem sich unser Chef jetzt zu Gebraucht-Workstations durchgerungen hat (System: 2xXeon E5-2665 [2x8 Kerne + HyperThreading]), haben wir nun Erfahrungen machen können...

    Buildzeit liegt jetzt bei etwa 2,5min [Statt 5min] mit dem bcc32+TwineCompile (Nun macht der extrem langsame Linker sich wesentlich bemerkbar, sonst läge die Geschwindigkeit noch höher).

    Wenn man von einem kleineren Projekt hochskalieren kann, kämen wir mit dem CLang nun auf etwa 8min [Vorher merklich über eine Viertelstunde]...



  • Mechanics schrieb:

    5 Minuten ist doch nichts... Bei uns dauerts Stunden, alles zu kompilieren. Eine wichtige Dll (von vielleicht 3-4, aber kann gut sein, dass man grad nur an einer was macht) komplett wahrscheinlich 10-20 Minuten, inkrementell kanns auch schon paar Minuten dauern. Und ich hab einen i7.

    Boah, da würde ich aber mal die Header checken was da alles unnötig includiert wird.

    Wir haben ein Projet mit etwa 2,5mio LoC und 1700 Dateien, da dauert ein kompletter Build 17 Minuten mit Twine-Compile auf einem Xeon E5-1620.



  • Wenn er CLang einsetzt, würde ich von TwineCompile abraten. Mit dem bcc32 ist es genial, mit dem CLang hatte es bei meinen Test [Rad Studio 10.1 Update 1] eben für eine merkliche verlangsamung gesorgt.

    Ausgehend vom bcc32 mit TC (jeweils gleiches Projekt):
    bcc32c (CLang) 32 ohne TC, mit aktiven Multithreading: 3 fache Buildzeit
    bcc32c (CLang) 32 mit TC: 5 fache Buildzeit



  • Macht TwineCompile mit dem bcc32c überhaupt Sinn? Die IDE kann doch schon mit dem bcc32c parallel übersetzen.



  • DocShoe schrieb:

    Macht TwineCompile mit dem bcc32c überhaupt Sinn? Die IDE kann doch schon mit dem bcc32c parallel übersetzen.

    bcc32 NICHT bcc32c (den ich oben als CLang bezeichne)



  • MichelRT schrieb:

    Boah, da würde ich aber mal die Header checken was da alles unnötig includiert wird.

    Wir haben ein Projet mit etwa 2,5mio LoC und 1700 Dateien, da dauert ein kompletter Build 17 Minuten mit Twine-Compile auf einem Xeon E5-1620.

    Naja, ich wollte ja jetzt nichts optimieren, habs nur erwähnt, weil ich 5 Minuten echt für vernachlässigbar halte.
    Grundsätzlich haben wir das vor paar Jahren schon gemacht, auch viele Includes aufgeräumt. Einige Module sind deutlich schneller geworden, gibt noch paar Sachen, die man aufräumen könnte, aber da wird jetzt in nächster Zeit niemand Arbeit investieren.
    Das ist sicher nicht das einzige, was beim Bauen Zeit kostet. Wir haben so 14000 Dateien, 3rdparty nicht mitgezählt. Und einiges wird mehrmals mit verschiedenen Compilerversionen gebaut, weil wir auch Plugins für verschiedene Systeme haben und da muss man für unterschiedliche Versionen unterschiedliche Compiler einsetzen. Dann noch zig spezielle Sachen, die beim Bauen gemacht werden usw... Ist eine Wissenschaft für sich, interessiert mich persönlich auch nicht wirklich, bin froh, dass sich andere drum kümmern.



  • eZ M8 Kappa 🤡


Anmelden zum Antworten