Notes:
- if a bench is written in the idiomatic way for an ECS, please let me know
- there will be more benches added soon
- the old parallel benches have been removed for now
- some older ECS that have not seen maintenance in over 3+ years are removed
Benchmarks are run on Travis CI.
Benchmarks are located in benches/[bench_name]_[ecs_crate_name].rs
.
Library | pos_vel build | pos_vel update |
---|---|---|
legion | 538 µs/iter (+/- 83) | 1 µs/iter (+/- 0) |
tiny_ecs | 290 µs/iter (+/- 9) | 10 µs/iter (+/- 0) |
hecs | 375 µs/iter (+/- 34) | 4 µs/iter (+/- 0) |
specs | 319 µs/iter (+/- 27) | 3 µs/iter (+/- 0) |
froggy | 307 µs/iter (+/- 10) | 9 µs/iter (+/- 0) |
constellation | 226 µs/iter (+/- 29) | 6 µs/iter (+/- 0) |
Visualization of benchmarks, smaller is better.
- 1000 entities with
position
andvelocity
components - 9000 entities with
position
components only - stub
render
system physics
system:position += velocity
- the benchmarks explore a limited subset of ECS use-cases and do not necessarily reflect the performance of large-scale applications
- froggy is technically not an ECS, but a Component Graph System (CGS)