Estáticos sem custo em C++: explorando recursos do vinculador

2025-07-19

Este artigo aborda a sobrecarga de desempenho da inicialização de variáveis estáticas em C++. Variáveis estáticas com escopo de bloco normalmente incorrem em custos de tempo de execução, como sincronização usando `__cxa_guard_acquire`. O autor propõe uma otimização que utiliza recursos do vinculador UNIX: pré-alocação de espaço em uma seção dedicada e execução da inicialização durante a inicialização global. Isso elimina a sobrecarga de tempo de execução, tornando as estáticas com escopo de bloco tão eficientes quanto as estáticas com escopo de arquivo. O artigo detalha a implementação, incluindo o tratamento de conflitos de atributos de seção provenientes de funções inline e membros de modelo, atingindo, por fim, uma otimização sem custo.

Desenvolvimento Vinculador