Skip to content
GitHub no longer supports this web browser. Learn more about the browsers we support.
Benchmarks of various Entity Component Systems in Rust
Rust Python
Branch: master
Clone or download
Pull request Compare This branch is 3 commits ahead of lschmierer:master.
Cannot retrieve the latest commit at this time.
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
benches
graph
src
.gitignore
.travis.yml
Cargo.toml
README.md
README.md.tmpl
bench_results.py
plot.dem
subprocess

README.md

Benchmarks of various Rust Entity Component Systems

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

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. update benchmarks graph build benchmarks graph

pos_vel

  • 1000 entities with position and velocity components
  • 9000 entities with position components only
  • stub render system
  • physics system: position += velocity

Notes

  • 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)
You can’t perform that action at this time.