Benjamin Summerton, autorul sistemului de trasare a razelor PSRayTracing, a analizat impactul asupra performanței aplicațiilor utilizând în codul C++ cuvântul cheie „final”, introdus în standardul C++11. Motivul testării a fost afirmațiile circulante pe internet că utilizarea „final” poate îmbunătăți performanța, care s-au bazat pe judecăți de valoare fără date concrete.
Testele efectuate de Benjamin au arătat că performanța utilizând „final” depinde foarte mult de compilator. La compilarea cu GCC, s-au observat creșteri semnificative ale performanței în ceva cazuri, dar la compilarea cu Clang și MSVC, performanța a scăzut în cele mai multe cazuri, mai semnificativ. De asemenea, platforma a avut un impact mare; de exemplu, scăderile de performanță s-au evidențiat mai mult pe un sistem cu CPU AMD Ryzen 9 6900HX decât pe un sistem cu CPU Apple M1.


De exemplu, pe un sistem AMD Ryzen 9 6900HX cu Ubuntu 23.10, la compilarea cu Clang, în 90% din teste, utilizarea „final” a dus la o încetinire de cel puțin 5%, dar în 2.5% din cazuri s-a observat o accelerare de cel puțin 5%. Pentru GCC, încetinirea de 5% s-a înregistrat în 0.9% din cazuri, iar accelerarea de 5% în 15.8% din cazuri. În MSVC, 5% încetinire a fost observată în 26.2% din teste, iar 5% accelerare în 13.3%. Cercetătorul a ajuns la concluzia că este necesar să se evite utilizarea „final”.
Sursa: opennet.ro
