Analyse des Einflusses des Schlüsselworts final auf die Leistung von C++-Programmen

Benjamin Summerton, der Autor des Raytracing-Systems PSRayTracing, analysierte die Auswirkungen der Verwendung des Schlüsselworts „final“ im C++-Code auf die Anwendungsleistung. Hintergrund der Tests waren online kursierende Behauptungen, dass der Einsatz von „final“ die Leistung steigern kann, die auf Bewertungen basierten, ohne konkrete Ergebnisse der Änderungen anzugeben.

Die Tests von Benjamin zeigten, dass die Leistung bei der Verwendung von „final“ stark vom Compiler abhängt. Bei der Kompilierung in GCC verbesserte sich in vielen Fällen tatsächlich die Leistung, während sie bei der Kompilierung in Clang und MSVC in den meisten Fällen sogar spürbar abnahm. Zusätzlich hatte die Plattform einen starken Einfluss; besonders auffällig war der Leistungseinbruch auf einem System mit einem CPU AMD Ryzen 9 6900HX im Vergleich zu einem System mit einem CPU Apple M1.

Analyse des Einflusses des Schlüsselworts final auf die Leistung von C++-Programmen
Analyse des Einflusses des Schlüsselworts final auf die Leistung von C++-Programmen

Zum Beispiel zeigte sich bei einem AMD Ryzen 9 6900HX System mit Ubuntu 23.10, dass die Verwendung von "final" in 90% der Tests zu einer Verlangsamung von mindestens 5% führte, während in 2,5% der Fälle eine Beschleunigung von mindestens 5% festgestellt wurde. Bei GCC wurde eine Verlangsamung um 5% in 0,9% der Fälle festgestellt, während eine Beschleunigung um 5% in 15,8% der Fälle auftrat. In MSVC zeigte sich eine Verlangsamung um 5% in 26,2% der Tests, während eine Beschleunigung um 5% in 13,3% der Fälle beobachtet wurde. Der Autor der Studie kam zu dem Schluss, dass die Verwendung von "final" vermieden werden sollte.

Quelle: opennet.ru

Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Servern 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Servern | ProHoster