{"repo":"JPenuchot/ctbench","free":true,"listed":false,"github":"https://github.com/JPenuchot/ctbench","clone":"git clone https://github.com/JPenuchot/ctbench.git","description":"Compiler-assisted variable size benchmarking for the study of C++ metaprogram compile times.","language":"C++","stars":26,"topics":["clang","benchmark","metaprogramming","gcc","compilation","data-analysis","data-visualization"],"license":"MIT","category":"analytics","readme_excerpt":"Compiler-assisted benchmarking for the study of C++ metaprogram compile times. - Github project: https://github.com/jpenuchot/ctbench - Online documentation: https://jpenuchot.github.io/ctbench-docs/ - Discord server: https://discord.gg/NvJFFrdS7p ctbench allows you to declare and generate compile-time benchmark batches for given ranges, run them, aggregate and wrangle Clang profiling data, and plot them. The project was made to fit the needs of scientific data collection and analysis , thus it is not a one-shot profiler, but a set of tools that enable reproductible data gathering from user-defined, variably sized compile-time benchmarks using Clang's time-trace feature to understand the impact of metaprogramming techniques on compile time. On top of that, ctbench is also able to measure compiler execution time to support compilers that do not have built-in profilers like GCC. It has two main components: a C++ plotting toolset that can be used as a CLI program and as a library, and a CMake boilerplate library to generate benchmark and graph targets. The CMake library contains all the boilerplate code to define benchmark targets compatible with the C++ plotting toolset called grapher . Rule of Cheese can be used as an example project for using ctbench. Examples As an example here are benchmark curves from the Poacher project. The benchmark case sources are available here. Clang ExecuteCompiler time curve from poacher, generated by the compare by plotter Clang Total Frontend ti","default_branch":null,"files":null,"tree":[],"storefront":"/r/JPenuchot","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/JPenuchot/ctbench/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}