ctbench - compile-time benchmarking and analysis - Archive ouverte HAL
Article Dans Une Revue Journal of Open Source Software Année : 2023

ctbench - compile-time benchmarking and analysis

Résumé

With libraries like Eigen (Guennebaud et al., 2010), Blaze (Iglberger, 2012), and CTRE (Dusíková, 2018) being developed with a large tempalte metaprogrammed implementation, we’re seeing increasing computing needs at compile time. These needs might grow even larger as C++ embeds more features over time to support and extend these kinds of practices, like compile-time containers (Dimov et al., 2019) and static reflection (Vandevoorde et al., 2022). However, there is still no clear cut methodology to compare the performance impact of different metaprogramming strategies. And as new C++ features allows for new techniques with claimed better compile-time performance, no proper methodologies are provided to back up those claims. This paper introduces ctbench, a set of tools for compile-time benchmarking and analysis in C++. It aims to provide developer-friendly tools to declare and run benchmarks, then aggregate, filter out, and plot the data to analyze it. As such, ctbench is meant to become the first layer of a proper scientific methodology for analyzing compile-time program behavior. We’ll first have a look at current tools for compile-time profiling and benchmarking and establish the limits of current tooling, then we’ll explain what ctbench brings to overcome these limits.
Fichier principal
Vignette du fichier
10.21105.joss.05165.pdf (242.76 Ko) Télécharger le fichier
Origine Fichiers éditeurs autorisés sur une archive ouverte

Dates et versions

hal-04404746 , version 1 (19-01-2024)

Licence

Identifiants

Citer

Jules Penuchot, Joel Falcou. ctbench - compile-time benchmarking and analysis. Journal of Open Source Software, 2023, 8 (88), pp.5165. ⟨10.21105/joss.05165⟩. ⟨hal-04404746⟩
53 Consultations
56 Téléchargements

Altmetric

Partager

More