Benjamin Summerton, avtor sistema trassirovki lutsey PSRayTracing, je analiziral vpliv na zmogljivost aplikacij uporabe ključno besedo „final“ v kodi v jeziku C++, ki se je pojavila v standardu C++11. Razlog za izvedbo testiranja so bili obstoječi spletni trditve, da uporaba „final“ povečuje zmogljivost, ki so se omejevale na ocenjevanja brez navedbe rezultatov sprememb.
Izvedeno testiranje Benjamina je pokazalo, da zmogljivost pri uporabi „final“ močno odvisna od kompajlerja. Pri C++ z GCC se je v opaznem številu primerov zmogljivost resnično povečala, medtem ko je pri Clang in MSVC v večini primerov upadla, kar je bilo še posebej izrazito. Velik vpliv, poleg kompajlerja, je imela tudi platforma; na primer, upad zmogljivosti se je bolj pojavil na sistemu s CPU AMD Ryzen 9 6900HX kot na sistemu s CPU Apple M1.


Na primer, na sistemu AMD Ryzen 9 6900HX z Ubuntu 23.10 pri sestavljanju z Clang je v 90% testov uporaba „final“ pokazala upočasnitev delo vsaj za 5%, medtem ko se je v 2.5% primerov zabeležilo pospeševanje vsaj za 5%. Pri GCC se je upočasnitev za 5% zabeležila v 0.9% primerov, pospeševanje za 5% pa v 15.8% primerih. Pri MSVC je bilo 5% upočasnitev opaženo v 26.2% testov, medtem ko je bilo 5% pospeševanja opaženo v 13.3%. Avtor raziskave je prišel do zaključka, da je treba uporabiti „final“ izogibati.
Izvor: opennet.ru
