/signal-slot-benchmarks

Comprehensive benchmarks for a majority of GitHub c++ signal slot implementations and others.

Primary LanguageC++

signal-slot-benchmarks

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
MSVC (Windows) [RECENTLY UPDATED]
GCC (Linux) [HELP WANTED]

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.

Algorithm Description
validation_assert Make sure each signal implementation is functioning correctly.
construction Sample the default construction of N * N number of Signal instances.
destruction Sample the destruction of N * N number of Signal instances.
connection Sample Signal connections to N number of Foo instances.
disconnect Sample disconnecting N number of Foo instances from a single Signal.
reconnect Sample reconnecting N number of Foo instances to a global Signal.
emit Sample the duration of an N slot emission.
all Sample all previous benchmarks together in one combined benchmark.
threaded Same as the previous benchmark but is now threaded.