Benjamin Summerton, autor do sistema de traçamento de raios PSRayTracing, analisou o impacto no desempenho das aplicações pelo uso da palavra-chave «final» no código em C++, que apareceu no padrão C++11. O motivo da realização dos testes foram as alegações que circulavam na internet de que o uso de «final» pode aumentar o desempenho, que se restringiam a avaliações sem resultados concretos.
Os testes realizados por Benjamin mostraram que o desempenho ao usar «final» depende muito do compilador. Ao compilar no GCC, de fato, em um número considerável de casos, o desempenho aumentou, mas ao compilar no Clang e MSVC, o desempenho na maioria dos casos diminuiu, e de forma mais acentuada. Além disso, a plataforma teve grande influência; por exemplo, a queda de desempenho foi mais evidente no sistema com CPU AMD Ryzen 9 6900HX do que no sistema com CPU Apple M1.


Por exemplo, em um sistema AMD Ryzen 9 6900HX com Ubuntu 23.10, ao compilar no Clang, em 90% dos testes observou-se uma desaceleração de pelo menos 5% com o uso de «final», mas em 2,5% dos casos havia uma aceleração de pelo menos 5%. Para o GCC, a desaceleração de 5% foi observada em 0,9% dos casos, enquanto a aceleração de 5% ocorreu em 15,8% dos casos. No MSVC, a desaceleração de 5% foi observada em 26,2% dos testes, enquanto a aceleração de 5% ocorreu em 13,3%. O autor da pesquisa concluiu que é necessário evitar o uso de «final».
Fonte: opennet.ru
