Statiques sans coût en C++ : exploitation des fonctionnalités du lieur

2025-07-19

Cet article traite de la surcharge de performance liée à l'initialisation des variables statiques en C++. Les variables statiques à portée de bloc entraînent généralement des coûts d'exécution, tels que la synchronisation via `__cxa_guard_acquire`. L'auteur propose une optimisation exploitant les fonctionnalités du lieur UNIX : préallocation d'espace dans une section dédiée et réalisation de l'initialisation lors de l'initialisation globale. Cela élimine la surcharge d'exécution, rendant les statiques à portée de bloc aussi efficaces que celles à portée de fichier. L'article détaille l'implémentation, y compris la gestion des conflits d'attributs de section provenant des fonctions inline et des membres de modèle, aboutissant finalement à une optimisation sans coût.

Développement Lieur