Reflectión de C++26 incurre en sobrecarga de 181 ms en compilación, según benchmarks

Fuentes: C++26 Reflection Performance: New Benchmarks Show Compile-Time Costs
Reflectión de C++26 incurre en sobrecarga de 181 ms en compilación, según benchmarks
Imagen generada con IA

Nuevos benchmarks publicados por Vittorio Romeo comparan el costo de compilación del sistema de reflexión de C++26 en GCC 16.1 contra alternativas existentes: la biblioteca enchantum (C++17) y el método x-macro del preprocesador. La prueba consiste en convertir enumerados a strings, operación útil para logging y serialización. Los resultados muestran que la reflexión incurre un 'impuesto de cabecera' de aproximadamente 181 ms por unidad de traducción al incluir , comparado con 136 ms de x-macro y 147 ms de enchantum. El costo escala casi linealmente con el número de enumeradores: ~0.07 ms por enumerador para reflexión. El uso de precompiled headers (PCH) reduce el costo ~2.3x, pasando de 187 ms a 81 ms para enumerados con 4 valores. En contraste, los módulos C++20 aumentan el tiempo ~2.2x. Con PCH habilitado, la reflexión supera a enchantum y a la variante string_view de x-macro. El benchmark usó GCC 16.1.1 en un Intel i9-13900K con hyperfine.