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 🚀. Learn more →
Top 21 C++ Benchmark Projects
A microbenchmark support libraryProject 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 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
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: C++20 μ(micro)/Unit Testing FrameworkProject 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.
Simple, fast, accurate single-header microbenchmarking functionality for C++11/14/17/20Project 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:
C++ Benchmark Authoring Library/Framework
https://github.com/networknt/microservices-framework-benchmark for starters
STREAM, for lots of devices written in many programming modelsProject 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.
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.
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.
Comprehensive benchmarks of C++ mapsProject 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
nativejson-benchmark in RustProject mention: Good example of high performance Rust project without unsafe code? | reddit.com/r/rust | 2022-08-02
A micro Vulkan compute pipeline and a collection of benchmarking compute shaders
C++ Mathematical Expression Parser BenchmarkProject 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.
A distributed storage benchmark for file systems, object stores & block devices with support for GPUs
A tool to measure CPU core to core latency
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? 😉
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
Comparison of Mandelbrot Set programs in different languages with smooth coloring and built-in benchmark mode.
A benchmark for hash tables and hash functions in C++, evaluate on different data as comprehensively as possibleProject 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.
Benchmarks for programming languages (by andrewmcwattersandco)Project mention: Benchmarks for Programming Languages | news.ycombinator.com | 2022-05-04
Microbenchmarking library for C++17 and aboveProject 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
A Suite of C++ Benchmarks for LibRapidProject mention: (Yet another) Update on LibRapid for C++ | reddit.com/r/cpp | 2022-11-16
A Benchmarking Program
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!
C++ Benchmark related posts
(Yet another) Update on LibRapid for C++
3 projects | reddit.com/r/cpp | 16 Nov 2022
Much Faster than std::string, fmt::format, std::to_chars, std::time and more?
1 project | reddit.com/r/cpp | 6 Oct 2022
Google benchmark : No rule to make Target***
1 project | reddit.com/r/cpp_questions | 19 Aug 2022
Is there a committee paper on a "simplified" random interface?
2 projects | reddit.com/r/cpp | 7 Aug 2022
Can you give an example of well-designed C++ code, and explain why you think it is so?
7 projects | reddit.com/r/cpp | 28 Jul 2022
Manticore: a faster alternative to Elasticsearch in C++ with a 21-year history
5 projects | reddit.com/r/selfhosted | 26 Jul 2022
Best accurate way to measure/compare elapsed time in C++
6 projects | reddit.com/r/cpp | 5 Jul 2022
A note from our sponsor - Scout APM
scoutapm.com | 1 Dec 2022
What are some of the best open-source Benchmark projects in C++? This list will help you: