ecs_bench_suite
                                
                                 ecs_bench_suite copied to clipboard
                                
                                    ecs_bench_suite copied to clipboard
                            
                            
                            
                        "Schedule" benchmark is heavily influenced by iteration performance
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.)
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.
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
Removing the first 10,000 insertions of just A improves planck's peformance by 14%!