Analisi dell'impatto della parola chiave final sulle prestazioni dei programmi C++

Benjamin Summerton, autore del sistema di tracciamento dei raggi PSRayTracing, ha analizzato l'impatto sulla performance delle applicazioni derivante dall'uso nella codifica in C++ della parola chiave "final", introdotta con lo standard C++11. La motivazione per il test è stata la diffusione in rete di affermazioni secondo cui l'uso di "final" può migliorare le prestazioni, che si limitavano a valutazioni soggettive senza risultati concreti.

I test condotti da Benjamin hanno mostrato che le prestazioni con l'uso di "final" dipendono fortemente dal compilatore. Con GCC, infatti, in un numero significativo di casi le prestazioni aumentavano, mentre con Clang e MSVC le prestazioni diminuivano nella maggior parte dei casi, e in modo più marcato. Inoltre, un grande impatto, al di là del compilatore, era dato dalla piattaforma: per esempio, il calo delle prestazioni si manifestava maggiormente su un sistema con CPU AMD Ryzen 9 6900HX rispetto a uno con CPU Apple M1.

Analisi dell'impatto della parola chiave final sulle prestazioni dei programmi C++
Analisi dell'impatto della parola chiave final sulle prestazioni dei programmi C++

Ad esempio, su un sistema AMD Ryzen 9 6900HX con Ubuntu 23.10, compilando con Clang, nel 90% dei test si è osservato un rallentamento di almeno il 5% nell'uso di "final", ma nel 2.5% dei casi si registrava un'accelerazione di almeno il 5%. Per GCC, un rallentamento del 5% è stato riscontrato nello 0.9% dei casi, mentre un'accelerazione del 5% nel 15.8% dei casi. In MSVC, un rallentamento del 5% è stato osservato nel 26.2% dei test, mentre un'accelerazione del 5% nel 13.3%. L'autore dello studio ha concluso di evitare l'uso di "final".

Fonte: opennet.ru

Acquista un hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista un hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster