Analiza impactului cuvântului cheie final asupra performanței programelor C++

Benjamin Summerton, autorul sistemului de urmărire a raze PSRayTracing, a analizat impactul asupra performanței aplicației al folosirii cuvântului cheie „final”, care a apărut în standardul C++11, în codul C++. Motivul testării a fost că au existat afirmații pe internet că utilizarea „finalului” ar îmbunătăți performanța, care s-au limitat la judecăți de valoare fără a indica rezultatele modificărilor.

Testarea lui Benjamin a arătat că performanța atunci când se folosește „final” este foarte dependentă de compilator. Când construiți în GCC, performanța a crescut într-un număr semnificativ de cazuri, dar când construiți în Clang și MSVC, performanța a scăzut în majoritatea cazurilor și mai vizibil. În același timp, pe lângă compilator, platforma a avut o mare influență de exemplu, degradarea performanței a fost mai accentuată pe un sistem cu un procesor AMD Ryzen 9 6900HX decât pe un sistem cu un procesor Apple M1;

Analiza impactului cuvântului cheie final asupra performanței programelor C++
Analiza impactului cuvântului cheie final asupra performanței programelor C++

De exemplu, pe un sistem AMD Ryzen 9 6900HX cu Ubuntu 23.10, la construirea în Clang, 90% dintre teste când se folosește „final” au arătat o încetinire de cel puțin 5%, dar în 2.5% din cazuri o accelerare de cel puțin 5% a fost inregistrat. Pentru GCC, s-a înregistrat o încetinire de 5% în 0.9% din cazuri și o accelerare de 5% în 15.8% din cazuri. În MSVC, s-a observat o încetinire de 5% în 26.2% dintre teste și o accelerare de 5% a fost observată în 13.3%. Pentru el însuși, autorul studiului a concluzionat că este necesar să se evite utilizarea „finalului”.

Sursa: opennet.ru

Adauga un comentariu