Analyse der Auswirkungen des SchlĂŒsselworts final auf die Leistung von C++-Programmen

Benjamin Summerton, der Autor des PSRayTracing-Renderingsystems, hat den Einfluss der Verwendung des SchlĂŒsselwortes „final“ im C++-Code auf die LeistungsfĂ€higkeit von Anwendungen analysiert. Der Anlass fĂŒr die Tests waren im Internet kursierende Behauptungen, dass die Verwendung von „final“ die Leistung steigert, die jedoch lediglich auf Meinungen basierten, ohne konkrete Ergebnisse der Änderungen anzugeben.

Die Tests, die von Benjamin durchgefĂŒhrt wurden, zeigten, dass die Leistung bei der Verwendung von „final“ stark vom Compiler abhĂ€ngt. Bei der Kompilierung in GCC stieg die Leistung in einer signifikanten Anzahl von FĂ€llen tatsĂ€chlich, wĂ€hrend sie bei der Kompilierung in Clang und MSVC in den meisten FĂ€llen sank, und das spĂŒrbarer. Zudem hatte neben dem Compiler auch die Plattform einen großen Einfluss; beispielsweise trat der Leistungsabfall stĂ€rker bei einem System mit CPU AMD Ryzen 9 6900HX auf als bei einem System mit CPU Apple M1.

Analyse der Auswirkungen des SchlĂŒsselworts final auf die Leistung von C++-Programmen
Analyse der Auswirkungen des SchlĂŒsselworts final auf die Leistung von C++-Programmen

Zum Beispiel wurde auf einem System mit AMD Ryzen 9 6900HX und Ubuntu 23.10 bei der Kompilierung in Clang in 90% der Tests bei Verwendung von „final“ eine Verlangsamung von mindestens 5% festgestellt, wĂ€hrend in 2,5% der FĂ€lle eine Beschleunigung von mindestens 5% dokumentiert wurde. Bei GCC wurde eine Verlangsamung von 5% in 0,9% der FĂ€lle festgestellt, wĂ€hrend eine Beschleunigung von 5% in 15,8% der FĂ€lle vorlag. In MSVC betrug die Verlangsamung von 5% in 26,2% der Tests, wĂ€hrend eine Beschleunigung von 5% in 13,3% der FĂ€lle beobachtet wurde. Der Autor der Studie kam zu dem Schluss, dass er die Verwendung von „final“ vermeiden sollte.

Quelle: opennet.ru

60GB SSD 8Gb DDR4