Benchmarks
I/O Benchmarks vs libevent
Methodology from libevent. Two tests:
- Single active connection — measures overhead per event, shows scalability limits of select/poll.
- 100 chained connections — each connection chains a write to the next until 1000 writes have occurred, exercising the event loop heavily.
Intel i7-12800H · Ubuntu 23.04 · Clang 16
Intel i5-11400F · Ubuntu 23.04 · WSL2 (kernel 6.1.21.1-microsoft-standard-WSL2+)
Apple M1 · MacBook Air 16G · macOS 12.6.3
Actor Benchmarks
Ring topology: N actors on a ring, each forwarding a message to the next. Seed messages are not counted toward throughput.
Hardware: i5-11400F · Ubuntu 25.04
Local Ring — 100 actors, batch 1024
| Framework | msg/s |
|---|---|
| Akka | 473,966 |
| COROIO | 442,151 |
| CAF | 302,930 |
| YDB/actors | 151,972 |
Distributed Ring — 10 processes, batch 1024, payload 0 bytes
| Framework | msg/s |
|---|---|
| COROIO | 1,137,790 |
| YDB/actors | 182,525 |
| CAF | 55,540 |
| Akka | 5,765 |
Distributed Ring — 10 processes, batch 1024, payload 1024 bytes
| Framework | msg/s |
|---|---|
| COROIO | 860,188 |
| YDB/actors | 96,372 |
Benchmark source: ping_actors.cpp