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.
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.
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.
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. |