signal-slot-benchmarks

May 30, 2020 ยท View on GitHub

Comprehensive benchmarks for a majority of GitHub c++ signal slot implementations and others.
Boost, as well as C++17 support, is required to build this project.

Foreword

These benchmarks do not accurately depict real world usage patterns seen in the wild.
However, these benchmarks were designed to provide impartial results regardless of implementation.

Tested Environments

click to view results

Maintainers

Generally, implementations that get added to this benchmark project aren't regularly updated by me unless asked to do so. If you are a maintainer of a referenced library, I encourage you to fork this project and create pull requests to expedite updates.

Benchmark Algorithms

The individual benchmark algorithms are completely generic through the use of templates.

AlgorithmDescription
validation_assertMake sure each signal implementation is functioning correctly.
constructionSample the default construction of N * N number of Signal instances.
destructionSample the destruction of N * N number of Signal instances.
connectionSample Signal connections to N number of Foo instances.
disconnectSample disconnecting N number of Foo instances from a single Signal.
reconnectSample reconnecting N number of Foo instances to a global Signal.
emitSample the duration of an N slot emission.
allSample all previous benchmarks together in one combined benchmark.
threadedSame as the previous benchmark but is now threaded.