C++ Benchmark

Open-source C++ projects categorized as Benchmark

Top 21 C++ Benchmark Projects

  • benchmark

    A microbenchmark support library

    Project mention: Google benchmark : No rule to make Target*** | reddit.com/r/cpp_questions | 2022-08-19

    I tried to install google benchmark(https://github.com/google/benchmark) in my ubuntu machine by :

  • cista

    Cista is a simple, high-performance, zero-copy C++ serialization & reflection library.

    Project mention: Adding reflection to C++ just to make a game work | reddit.com/r/cpp | 2022-10-23

    If you want to see, what's possible with plain C++ (no language changes needed), checkout https://github.com/felixguendling/cista

  • Sonar

    Free webinar: The Power of Clean C++. Are you ready to take your C++ code to the next level? Join Sonar on December 7th for our live webinar as we discuss how to get your code clean - and stay clean - with minimal effort and without being overloaded with warnings. Register now!

  • ut

    UT: C++20 μ(micro)/Unit Testing Framework

    Project mention: snatch -- A lightweight C++20 testing framework | reddit.com/r/cpp | 2022-10-18

    It was not easy, I had to modify Boost UT to get it to run my tests. It doesn't support type-parametrized tests when the type parameter is non-copiable, which was the case for me. This is a symptom of a larger issue, which is that it relies on std::apply and std::tuple to generate the type-parametrized tests, which in turns requires instantiating the tuple and the contained objects (even though these instances aren't actually used; eh). That's a no go for me, since I need to carefully monitor when instance are created, and this was throwing off my test code. I had to effectively disable these checks to get it to run without failures. Then there was a similar issue with expect(), which doesn't work if part of the expression is non-copiable. I reported these issues to them.

  • nanobench

    Simple, fast, accurate single-header microbenchmarking functionality for C++11/14/17/20

    Project mention: Much Faster than std::string, fmt::format, std::to_chars, std::time and more? | reddit.com/r/cpp | 2022-10-06

    I've done a relatively simple test of taking random doubles (between 0 and 1), converting them to a C string via std::to_chars and then converting that C string back to a double via std::from_chars vs his xeerx::chars_to and got the following results on my machine via nanobench:

  • Celero

    C++ Benchmark Authoring Library/Framework

  • microservices-framework-benchmark

    Raw benchmarks on throughput, latency and transfer of Hello World on popular microservices frameworks

    Project mention: Implementing Microservices in NodeJS | reddit.com/r/javascript | 2022-05-15

    https://github.com/networknt/microservices-framework-benchmark for starters

  • BabelStream

    STREAM, for lots of devices written in many programming models

    Project mention: Fortran on GPU | reddit.com/r/fortran | 2022-10-21

    I wrote the Fortran version of BabelStream (https://github.com/UoB-HPC/BabelStream/pull/135) to compare all of these, which might be useful as well. There is also MiniWeather, which supports all OpenMP, OpenACC and StdPar for GPU: https://github.com/mrnorman/miniWeather/tree/main/fortran.

  • InfluxDB

    Build time-series-based applications quickly and at scale.. InfluxDB is the Time Series Data Platform where developers build real-time applications for analytics, IoT and cloud-native services in less time with less code.

  • mixbench

    A GPU benchmark tool for evaluating GPUs on mixed operational intensity kernels (CUDA, OpenCL, HIP, SYCL)

    Project mention: Intel Nukes Alder Lake's AVX-512 Support, Now Fuses It Off in Silicon | reddit.com/r/hardware | 2022-03-02

    The results I get match the FLOPS figures stated for the respective GPUs, so presumably I can't be memory bound or similar. But if you're still in doubt, I was using this code, comparing the single precision and integer kernels, so let me know any issues you see with the benchmark.

  • map_benchmark

    Comprehensive benchmarks of C++ maps

    Project mention: Is there a committee paper on a "simplified" random interface? | reddit.com/r/cpp | 2022-08-07

    There is no such thing as best random generator. They have so many different properties, e.g. is it cryptographic secure, how large is the state, how fast on x86 architecture, can it jump forward, etc. My go-to generator is sfc64 because it's fast, simple, and seems to produce high quality random numbers. Here is one implementation: https://github.com/martinus/map_benchmark/blob/master/src/app/sfc64.h other popular generators are PCG and xorshift

  • json-benchmark

    nativejson-benchmark in Rust

    Project mention: Good example of high performance Rust project without unsafe code? | reddit.com/r/rust | 2022-08-02
  • uVkCompute

    A micro Vulkan compute pipeline and a collection of benchmarking compute shaders

  • math-parser-benchmark-project

    C++ Mathematical Expression Parser Benchmark

    Project mention: Any way to parse a math equation from a variable? | reddit.com/r/cpp_questions | 2022-11-11

    Search for "C++ math parser", e.g. muparser or look at the list in The Great C++ Mathematical Expression Parser Benchmark. Or if you want to do it on your own: A C++ Expression Parser Tutorial.

  • elbencho

    A distributed storage benchmark for file systems, object stores & block devices with support for GPUs

  • c2clat

    A tool to measure CPU core to core latency

    Project mention: Measuring core-to-core latency (in Rust) | news.ycombinator.com | 2022-09-18

    I have something similar but in C++: https://github.com/rigtorp/c2clat

  • ecs_benchmark

    Simple Benchmarks of common Entity-Component-System-Frameworks in C++

    Project mention: Dominion, a high-performance, high-concurrency ECS implementation for Java | reddit.com/r/gameenginedevs | 2022-02-27

    As a benchmark, I am currently using Flecs, Legion and others like EnTT and all benchmarks are allocating data sequentially to get cache locality ... How could I not do the same? 😉

  • LruClockCache

    A low-latency LRU approximation cache in C++ using CLOCK second-chance algorithm. Multi level cache too. Up to 2.5 billion lookups per second.

    Project mention: Is 180 million lookups per second performance ok for an asynchronous cache written in C++ running on FX8150? (has cache-coherence and runs only 1 consumer thread as back-end) | reddit.com/r/programming | 2022-02-14
  • mandelbrot-comparison

    Comparison of Mandelbrot Set programs in different languages with smooth coloring and built-in benchmark mode.

  • hashtable-bench

    A benchmark for hash tables and hash functions in C++, evaluate on different data as comprehensively as possible

    Project mention: Updating map_benchmarks: Send your hashmaps! | reddit.com/r/cpp | 2022-06-16

    I believe that when the number of elements is larger than 4 (a rough estimation), the associative linear table won't be faster than ska::flat_hash_map or fph-table with the identity hash function. If you look at the benchmark results, you will find that the average lookup time may well be less than 2 nanoseconds when item number is smaller than one thousand on morden CPUs. For these two hash tables, there are only about ten instructions in the critical path of lookup. And this should be faster than the linear search in a associative table, where there are a lot of branches and comparing instructions. However, you should benchmark it youself to get the real conclusion. This is just a simple analysis on paper from mine. By the way, the associative table can be faster if it is implemented with hardware circuits or SIMD instructions.

  • programming-language-benchmarks

    Benchmarks for programming languages (by andrewmcwattersandco)

    Project mention: Benchmarks for Programming Languages | news.ycombinator.com | 2022-05-04
  • precision

    Microbenchmarking library for C++17 and above

    Project mention: I'm writing a microbenchmarking library called "precision" without any macros. What do you guys think of the API? | reddit.com/r/cpp | 2022-01-04

    Link: https://github.com/ruarq/precision

  • BenchmarksCPP

    A Suite of C++ Benchmarks for LibRapid

    Project mention: (Yet another) Update on LibRapid for C++ | reddit.com/r/cpp | 2022-11-16

    A Benchmarking Program

  • Zigi

    The context switching struggle is real. Zigi makes context switching a thing of the past. It monitors Jira and GitHub updates, pings you when PRs need approval and lets you take fast actions - all directly from Slack!

NOTE: The open source projects on this list are ordered by number of github stars. The number of mentions indicates repo mentiontions in the last 12 Months or since we started tracking (Dec 2020). The latest post mention was on 2022-11-16.

C++ Benchmark related posts


What are some of the best open-source Benchmark projects in C++? This list will help you:

Project Stars
1 benchmark 7,031
2 cista 1,060
3 ut 928
4 nanobench 890
5 Celero 723
6 microservices-framework-benchmark 668
7 BabelStream 205
8 mixbench 196
9 map_benchmark 177
10 json-benchmark 136
11 uVkCompute 115
12 math-parser-benchmark-project 111
13 elbencho 81
14 c2clat 58
15 ecs_benchmark 57
16 LruClockCache 33
17 mandelbrot-comparison 7
18 hashtable-bench 3
19 programming-language-benchmarks 2
20 precision 1
21 BenchmarksCPP 1
Truly a developer’s best friend
Scout APM is great for developers who want to find and fix performance issues in their applications. With Scout, we'll take care of the bugs so you can focus on building great things 🚀.