ecs_bench_suite icon indicating copy to clipboard operation
ecs_bench_suite copied to clipboard

"Schedule" benchmark is heavily influenced by iteration performance

Open Ratysz opened this issue 5 years ago • 3 comments

Systems (A, B), (C, D), and (C, E) are iterating through 40k, 10k, and 10k entites respectively. I argue this is measuring iteration performance more than it does scheduler performance, or even scheduler efficiency. (The latter two should be separate tests, but, one thing at a time.)

Ratysz avatar Aug 25 '20 11:08 Ratysz

I agree. planck_ecs is slower on iteration performance but has a decent scheduler, yet in the schedule benchmark it performs very poorly compared to the ecs that perform better on iteration speed.

AnneKitsune avatar Mar 17 '21 15:03 AnneKitsune

It also looks like planck and specs are iterating over 10,000 more components than bevy and legion - bevy, legion and shipyard omit the "just A" archetype.

bevy: https://github.com/rust-gamedev/ecs_bench_suite/blob/master/src/bevy/schedule.rs#L33-L39 legion: https://github.com/rust-gamedev/ecs_bench_suite/blob/master/src/legion/schedule.rs#L31-L37 shipyard: ... vs planck: https://github.com/rust-gamedev/ecs_bench_suite/blob/master/src/planck_ecs/schedule.rs#L40-L68 specs: https://github.com/rust-gamedev/ecs_bench_suite/blob/master/src/specs/schedule.rs#L64-L95

schell avatar Apr 06 '22 04:04 schell

Removing the first 10,000 insertions of just A improves planck's peformance by 14%!

schell avatar Apr 06 '22 04:04 schell