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

Benjamin Summerton, autore del sistema di ray tracing PSRayTracing, ha analizzato l'impatto sulle prestazioni dell'applicazione derivante dall'utilizzo della parola chiave "final", che appariva nello standard C++11, nel codice C++. Il motivo del test era che su Internet circolavano affermazioni secondo cui l'uso di "finale" avrebbe migliorato le prestazioni, che si limitavano a giudizi di valore senza indicare i risultati delle modifiche.

I test di Benjamin hanno dimostrato che le prestazioni quando si utilizza "final" dipendono fortemente dal compilatore. Durante la creazione in GCC, le prestazioni sono effettivamente aumentate in un numero notevole di casi, ma durante la creazione in Clang e MSVC, nella maggior parte dei casi le prestazioni sono diminuite e in modo più evidente. Allo stesso tempo, oltre al compilatore, anche la piattaforma ha avuto una grande influenza, ad esempio il degrado delle prestazioni è stato più pronunciato su un sistema con CPU AMD Ryzen 9 6900HX che su un sistema 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 Il 23.10 ottobre, durante la compilazione con Clang, il 90% dei test ha mostrato un rallentamento di almeno il 5% con l'utilizzo di "final", mentre il 2.5% dei test ha mostrato un'accelerazione di almeno il 5%. Per GCC, un rallentamento del 5% è stato osservato nello 0.9% dei test e un'accelerazione del 5% nel 15.8% dei casi. In MSVC, un rallentamento del 5% è stato osservato nel 26.2% dei test e un'accelerazione del 5% nel 13.3%. L'autore dello studio ha concluso che l'utilizzo di "final" dovrebbe essere evitato.

Fonte: opennet.ru

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