Visual Studio - compilierter code langsam

  • Hi,


    ich integriere grad Teile meines alten Programms in ein Unrealprojekt und bemerke, dass der compilierte code dieser alten Teile um den Faktor 10 langsamer abläuft als früher. Eigentlich greift Unreal da gar nicht ein weil die alten Teile in einem ausgelagerten thread dahinlaufen.
    Ich kann mir das also nur so erklären dass es an der Art liegt wie compiliert wird.
    Damals, ohne Unreal hatte ich in Visual Studio die Einstellungen "Debug" und "Release". Der mir Release compilierte code lief dabei um Faktor 10 schneller als der mit Debug compilierte code.
    Und jetzt läuft der gleiche code, egal was ich im Visual Studio jetzt einstelle, immer so langsam wie früher der mit Debug compilierte code. 8|

    Könnt ihr mir da helfen?


    Dankeschön!!

  • Hi kyodai,
    Unreal gibt die Configurations schon vor.
    Da gibts: DebugGameEditor, DebugGame, Shipping usw.


    Wenn ich die öffne dann kann ich nicht sehr viel auswählen. Schau mal den screenshot.

    Links ist die Configauswahl des Unreal-Projekts (total wenig)
    Rechts die ohne Unreal. Dort kann ich einstellen, dass der code maximal optimiert wird.


    Mag sein dass Shipping dann besser funktioniert. Das hab ich noch nicht ausprobiert (ich bekomme da noch Fehler).

  • Gab es nicht um UE 4.18 rum mal Optimierungen von Epic Seite. Bei denen Sie einiges Umgestellt haben? Wenn dein Integrierter Code älter ist könnte ich mir vorstellen, dass der Compiler Schwierigkeiten hat bestimmte Files noch zu finden und irgendwelche Brücken zusammenwurstelt.
    Hast du evt. noch alte Includes, Makros oder ähnliches in deinem Code drin?

    Ist ein Schuss ins Blaue. Kenne mich mit dem Compiler nicht so wirklich aus.

  • Der code ist schon ein paar Jahre alt und war ein eigenständiges c++ Programm, geschrieben in Visual Studio. Es wurden dort 8 threads gestartet die mit Höllenspeed Berechnungen machen. Jetzt habe ich den code in ein Unrealprojekt eingebunden. Visual Studio compiliert nun mit den Unreal Einstellungen und seit dem ist jeder der 8 threads um Faktor 10 langsamer.
    Auffallend ist halt dass der Geschwindigkeitsunterschied recht genau dem entspricht den ich damals im alten Programm hatte zwischen "Debug" und "Release". Wenn ich die beiden vergleiche (siehe oben) dann sehe ich, dass bei "Release" maximum Optimization (speed) eingestellt ist.
    Diese Einstellung gibt es in der Unreal config nicht.

  • Visual Studio ist, gerade wenn es um Ansi/ISO Programmiersprachen wie C++ geht, immer so eine Sache, Microsoft hält sich da nicht immer an alles. Für hauseigene Sprachen wie C#, F# usw. ist Visual Studio wirklich gut, weil es eine Menge Arbeit abnimmt.


    Für C++ oder ähnliches würde ich dir aber vielleicht doch eher sowas wie Code::Blocks empfehlen.