Ask round trip
One caller asks one actor, one ask at a time.
Times slower than the best in each row. Latency rows use p99. The stronger the colour, the faster.
| axon | actix | ractor | kameo | coerce | xtra | |
|---|---|---|---|---|---|---|
| Ask round trip | best | 1.10× | 1.50× | 1.80× | 1.41× | 1.16× |
| Latency 100 k/s | best | 2.3× | 3.7× | 3.8× | 3.5× | 3.9× |
| Latency 1 M/s | best | 3.0× | 4.3× | 3.9× | 3.9× | 5.6× |
| Tell, one to one | best | 4.8× | 5.9× | 9.6× | 11.9× | 4.7× |
| Outside tell | best | 6.1× | 4.7× | 4.9× | 5.9× | 6.7× |
| 1 KiB messages | best | 2.2× | 3.7× | 3.4× | 12.7× | 2.2× |
| Four into one | best | 2.7× | 6.2× | 9.8× | 13.3× | 4.9× |
| One into 64 | best | 2.2× | 6.8× | 7.9× | 12.1× | 3.7× |
| Mesh | 1.01× | best | 2.6× | 3.7× | 3.0× | 3.4× |
| Ping-pong | 1.10× | best | 2.1× | 3.7× | 2.8× | 1.94× |
| CPU work | 1.06× | best | 1.02× | 1.11× | 1.10× | 1.07× |
| Many asks | 1.35× | best | 1.45× | 2.1× | 1.76× | 1.21× |
| Spawn | 2.0× | best | 6.6× | 5.6× | 4.3× | 1.36× |
| axon | actix | ractor | kameo | coerce | xtra | |
|---|---|---|---|---|---|---|
| Ask round trip | 1.05× | best | 9.9× | 10.4× | 10.5× | 9.4× |
| Latency 100 k/s | best | 2.6× | 4.5× | 4.6× | 4.6× | 4.1× |
| Latency 1 M/s | best | 2.5× | 3.4× | 3.5× | 4.4× | 5.2× |
| Tell, one to one | best | 9.2× | 7.9× | 8.6× | 11.5× | 5.7× |
| Outside tell | best | 8.2× | 2.3× | 3.5× | 2.4× | 3.2× |
| 1 KiB messages | best | 6.2× | 1.92× | 1.58× | 6.8× | 1.40× |
| Four into one | 1.02× | best | 3.7× | 4.7× | 4.1× | 5.6× |
| One into 64 | best | 9.1× | 1.96× | 3.6× | 2.8× | 3.9× |
| Mesh | best | 1.07× | 2.3× | 3.2× | 2.7× | 2.5× |
| Ping-pong | best | 53.4× | 3.9× | 6.4× | 4.5× | 3.5× |
| CPU work | 1.03× | best | 1.06× | 1.33× | 1.25× | 1.17× |
| Many asks | 5.9× | best | 3.8× | 4.5× | 4.5× | 4.0× |
| Spawn | 7.2× | best | 27.9× | 26.9× | 17.0× | 5.0× |
| axon | actix | ractor | kameo | coerce | xtra | |
|---|---|---|---|---|---|---|
| Ask round trip | best | 1.05× | 10.6× | 10.0× | 11.6× | 10.1× |
| Latency 100 k/s | best | 1.37× | 2.4× | 2.4× | 2.5× | 2.5× |
| Latency 1 M/s | best | 3.1× | 2.1× | 2.2× | 3.8× | 1.96× |
| Tell, one to one | best | 8.6× | 8.0× | 10.2× | 12.8× | 6.4× |
| Outside tell | best | 3.6× | 1.05× | 1.19× | 1.21× | 1.08× |
| 1 KiB messages | best | 7.5× | 6.6× | 2.1× | 8.8× | 1.76× |
| Four into one | best | 1.13× | 2.9× | 3.5× | 2.7× | 4.3× |
| One into 64 | best | 12.0× | 2.2× | 2.9× | 2.6× | 3.1× |
| Mesh | best | 1.62× | 2.2× | 3.2× | 2.6× | 3.2× |
| Ping-pong | best | 51.9× | 3.7× | 5.9× | 5.0× | 3.6× |
| CPU work | best | 4.7× | 1.25× | 2.5× | 1.41× | 2.9× |
| Many asks | 8.0× | best | 3.8× | 3.7× | 3.6× | 4.0× |
| Spawn | 12.2× | best | 50.4× | 38.2× | 30.0× | 8.7× |
Lower is better. Dot: median. Ring: p99. Bar: p99.9. Log scale.
One caller asks one actor, one ask at a time.
16 actors told at a fixed 100 k msg/s. Time from due to handled.
16 actors told at a fixed 1 M msg/s. Time from due to handled.
Time per operation. Lower is better.
One actor tells one actor.
A plain thread tells 100 actors in turn.
One actor tells one actor 1 KiB by value.
Four actors tell one actor.
One actor tells 64 actors in turn.
actix: from 4 workers, the actors are on different Arbiters (threads).
1000 actors tell random others.
Two actors, one message in flight.
actix: from 4 workers, the two actors are on different Arbiters (threads).
One actor tells 64 actors; about 2 µs of work each.
1000 callers ask 16 actors.
Time per actor, and memory per actor. Lower is better.
Spawn 100 k actors, one message each.
Million operations per second at each worker count. Higher is better.