Benjamin Summerton, autor systému ray tracing PSRayTracing, analyzoval vliv klíčového slova „final“ použitého v kódu jazyka C++, které se objevilo ve standardu C++11, na výkon aplikací. Důvodem pro provedení testů byla prohlášení šířící se na internetu, že použití „final“ může zlepšit výkon, která byla založena na odhadech bez uvedení konkrétních výsledků změn.
Testování provedené Benjaminem ukázalo, že výkon při použití „final“ silně závisí na kompilátoru. Při sestavování v GCC skutečně v mnoha případech výkon vzrostl, ale při sestavení v Clang a MSVC výkon ve většině případů klesal, přičemž pokles byl znatelnější. Na výkon měla vliv také platforma, například pokles výkonu byl více patrný na systému s CPU AMD Ryzen 9 6900HX než na systému s CPU Apple M1.


Například na systému AMD Ryzen 9 6900HX s Ubuntu 23.10 při sestavování v Clang v 90 % testů při použití „final“ došlo k zpomalení minimálně o 5 %, avšak v 2,5 % případů došlo k zrychlení alespoň o 5 %. Pro GCC bylo zpomalení o 5 % zaznamenáno v 0,9 % případů, zatímco zrychlení o 5 % v 15,8 % případů. V MSVC bylo 5 % zpomalení zaznamenáno ve 26,2 % testů, zatímco 5 % zrychlení v 13,3 %. Autor studie si proto vyvodil závěr o nutnosti vyvarovat se použití „final“.
Zdroj: opennet.ru
