Hallo zusammen,
ich bin auf der Suche nach einem Performance-Problem mit selbst geschrieben C++-Code, bin mit meinem Latein am Ende und Suche nach Ideen, wie ich der Ursache auf den Grund komme.
Das Programm:
Das Problem:
Details:
Hat irgendjemand Ansatzpunkte, wo ich nach der Ursache suchen kann?
Vielen Dank für jeden Tipp!
Danke!!
P.S.
ich bin auf der Suche nach einem Performance-Problem mit selbst geschrieben C++-Code, bin mit meinem Latein am Ende und Suche nach Ideen, wie ich der Ursache auf den Grund komme.
Das Programm:
- Selbst geschrieben in C++
- Es ist ein rechenintensives, Multithreading Programm für ein Optimierungsproblem.
Charakteristik: praktisch nur Integer-Arithmetik + Funktionsaufrufe; 32 Bit, 100% CPU-Last, fast keine Speicherzugriffe, keine Ausgaben, Laufwerks- oder Netzzugriffe (Charakteristik ähnlich zu Prime95).
Das Problem:
- Das Programm hab ich in 2012 übersetzt (exe-Datei). Es läuft sehr schnell auf meinem heutigen Rechner.
- Wenn ich den (unveränderten Code) heute neu übersetze, dann schafft das 2023er-EXE ca. 15% weniger Leistung, d.h. es benötigt 15% länger als die 2012er-Version für dieselben Berechnungen auf demselben Rechner!
Details:
- 2012er-Version wurde mit MS Visual C++ 2010 Express übersetzt.
- 2023er-Version wurde mit MS Visual Studio 2022 übersetzt.
- Ausgeführt wird es heute unter Win11 auf einem I7-13700K.
Hat irgendjemand Ansatzpunkte, wo ich nach der Ursache suchen kann?
Vielen Dank für jeden Tipp!
Danke!!
P.S.
- Compiler-Flags sind (annähernd) identisch:
2012:
/D "WIN32"/D "_UNICODE"
/EHsc
/FU"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.Core.dll"
/FU"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.Data.dll"
/FU"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.Xml.dll"
/FU"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.dll"
/Fa"Release\"
/Fd"Release\vc100.pdb"
/Fo"Release\"
/Fp"Release\Optimierer.pch"
/GS
/O2
/W3
/WX-
/Zc:forScope
/Zc:wchar_t
/Zi
/analyze-
/errorReport:queue
/fprecise
/nologo
2023:
- /D "WIN32"
/D "_UNICODE"
/EHsc
/FC
/FU"C:\Windows\assembly\GAC_32\System.Data\2.0.0.0__b77a5c561934e089\System.Data.dll"
/FU"C:\Windows\assembly\GAC_MSIL\System.Xml\2.0.0.0__b77a5c561934e089\System.Xml.dll"
/FU"C:\Windows\assembly\GAC_MSIL\System\2.0.0.0__b77a5c561934e089\System.dll"
/Fa"Release\"
/Fd"Release\vc143.pdb"
/Fo"Release\"
/Fp"Release\Optimierer.pch"
/GS
/Gd
/O2
/W3
/WX-
/Zc:forScope
/Zc:wchar_t
/Zi
/analyze-
/diagnostics:column
/errorReportrompt
/fprecise
/ifcOutput "Release\"
/nologo