bevyengine / bevyengine/bevy

Better change detection benchmarking

Open
#11,217 0 comments 1 reaction 0 assignees View on GitHub
A-ECS C-Benchmarks
Dominant language
Rust
Stars
48.2k
Forks
4.8k
Avg merge
3d 16h
Merged PRs (30d)
171

Description

## What problem does this solve or what need does it fill?

The change detection benchmarks we currently have (#4883) don't accurately cover all of the realistic use cases we care about.\

## What solution would you like?

We should cover:

1. No entity has changed.
2. Only one entity has changed across many entities.
3. Only entities within a single archetype has changed, across many archetypes and entities.
4. Half of the entities have changed, completely at random.
4. Almost all entities have changed.
5. Almost all of the archetypes have changed.
6. All entities have changed.

We should independently measure both the speed of making the mutations, and the speed of detecting the changes.

## Additional context

https://github.com/bevyengine/bevy/pull/11173 improves the reliability of the existing benchmarks, and should be merged first.

This is needed by #4882 and #5097, to evaluate the impacts of changes made to address them.

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the existing change-detection benchmarks referenced in #4883 and the reliability work in pull request #11173. Add benchmark coverage for each listed mutation pattern, independently measuring mutation and detection speed. Done means the scenarios are represented and their results can be compared reliably for the work in #4882 and #5097.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
performance
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.