[Capy/Corosio review] Benchmark results
Marcelo Zimbres Silva via Boost <[email protected]> Mon, 29 Jun 2026 00:01:01 +0200
| Newsgroups | gmane.comp.lib.boost.devel |
|---|---|
| Message-ID | <CAPGXEnFyFZD_vFiRaL=6xRDktNLaU8Tz4my63EutzjEVeP1tPA@mail.gmail.com> |
Hi, some months ago I started implementing new benchmarks for
Boost.Redis to compare it to the current state of other popular
clients. While underway with it Boost.Redis gained Corosio support,
something that has been announced by Ruben Perez in this mailing list
recently.
In this email I would like tol share the results I obtained for
appreciation by the Capy/Corosio review audience. The code is public
and available at https://github.com/mzimbres/redis-cli-comp.
The new benchmarks simulate a scenario where Redis is mostly used,
namely, internet facing servers (usually HTTP) that serve connections
concurrently while receiving server pushes e.g. pubsub events. It
consists of
1. starting multiple independent sessions that issue commands in a loop.
2. subscribing to a channel to receive pubsub events.
## Runtime Performance
The metric used to assess the runtime performance was the wall-clock
multiplied by %CPU consumption used by the client. This metric takes
into account that clients might use a different number of threads. The
following result were obtained (lower is better)
Client Time x %CPU (nomalized)
-------------------------------------------------------------------
boost_redis_corosio 1.00
boost_redis_asio_cb 1.35
boost_redis_asio_co 1.73
redis_rs (Rust) 4.62
go_redis (Go) 22.33
The thread and file-descriptor usage by each client was
Client threads fd-nr
--------------------------------------------------
boost-redis-corosio 3 7
boost-redis-asio-co 2 7
boost-redis-asio-cb 2 7
redis-rs 1 10
go-redis 24 1006
## Application build time
This is the time taken to build the benchmark program excluding the
time taken to build the client library
Library Time (s)
---------------------------------------
boost-redis-corosio 1.68
boost-redis-asio-co 3.60
boost-redis-asio-cb 8.62
redis-rs 3.10
go-redis 0.28
## Client build time
Here we see the time taken to build only the client
Library Time (s)
-------------------------------------------
boost-redis-lib-corosio 5.3
boost-redis-lib-asio 21.7
redis-rs 9.6
Note: I haven't found a way to measure this for go clients.
## Total build time
The times below include the build time of all dependencies (which have
been previously downloaded)
Client Time (s)
---------------------------------------
boost-redis-corosio 33.6
boost-redis-asio-co 35.5
boost-redis-asio-cb 40.5
redis-rs 42.6
go-redis 9.0
## Executable size
That is the size of release builds of each benchmark program.
Executable Size
--------------------------------------
boost_redis_corosio 1.5M
boost_redis_asio_cb 1.9M
boost_redis_asio_co 1.3M
redis_rs 2.0M
go_redis 8.2M
## Summary
It is not the point of this report to analyse the results in detail or
emit any verdict, Corosio however has come out with really impressive
results IMO.
Marcelo
_______________________________________________
Boost mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://lists.boost.org/mailman3/lists/boost.lists.boost.org/
Archived at: https://lists.boost.org/archives/list/[email protected]/message/DRXACCXHE4RCRQHPPVXI56JT2V7CJMFD/