Analys av nyckelordet finals påverkan på prestandan hos C++-program

Benjamin Summerton, författaren till PSRayTracing-strålningsspårningssystemet, har analyserat hur användning av nyckelordet "final" i C++-kod, som introducerades i C++11-standarden, påverkar prestanda för applikationer. Testerna genomfördes på grund av uttalanden på nätet som hävdade att användningen av "final" kan förbättra prestandan, vilket begränsades till uppskattningar utan att ange några resultat från förändringarna.

Benjamin Summertons tester visade att prestandan vid användning av "final" är starkt beroende av kompilatorn. Vid byggnation i GCC ökade prestandan faktiskt i ett betydande antal fall, men vid byggnation i Clang och MSVC minskade prestandan i de flesta fall, och detta var mer påtagligt. Dessutom hade plattformen stor påverkan; till exempel var prestandafallet mer uttalat på system med CPU AMD Ryzen 9 6900HX jämfört med system med CPU Apple M1.

Analys av nyckelordet finals påverkan på prestandan hos C++-program
Analys av nyckelordet finals påverkan på prestandan hos C++-program

Till exempel, på ett system med AMD Ryzen 9 6900HX och Ubuntu 23.10, under byggnation i Clang, observerades en nedgång på minst 5% i prestanda vid användning av "final" i 90% av testerna, men det noterades en ökning på minst 5% i 2,5% av fallen. För GCC registrerades en nedgång på 5% i 0,9% av fallen, medan en ökning på 5% noterades i 15,8% av fallen. I MSVC observerades en nedgång på 5% i 26,2% av testerna, och en ökning på 5% i 13,3%. För sig själv drog författaren av studien slutsatsen att användning av "final" bör undvikas.

Källa: opennet.ru

Köp pålitlig webbhotell med DDoS-skydd, VPS VDS-servrar 🔥 Köp pålitlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster