mirror of
https://github.com/bevyengine/bevy
synced 2024-11-26 06:30:19 +00:00
8235daaea0
# Objective - currently, bevy employs sparse iteration if any of the target components in the query are stored in a sparse set. it may lead to increased cache misses in some cases, potentially impacting performance. - partial fixes #12381 ## Solution - use dense iteration when an archetype and its table have the same entity count. - to avoid introducing complicate unsafe noise, this pr only implement for `for_each ` style iteration. - added a benchmark to test performance for hybrid iteration. ## Performance ![image](https://github.com/bevyengine/bevy/assets/45868716/5cce13cf-6ff2-4861-9576-e75edc63bd46) nearly 2x win in specific scenarios, and no performance degradation in other test cases. --------- Co-authored-by: Alice Cecile <alice.i.cecile@gmail.com> Co-authored-by: Christian Hughes <9044780+ItsDoot@users.noreply.github.com> |
||
---|---|---|
.. | ||
entity | ||
event | ||
identifier | ||
observer | ||
query | ||
reflect | ||
schedule | ||
storage | ||
system | ||
world | ||
archetype.rs | ||
batching.rs | ||
bundle.rs | ||
change_detection.rs | ||
component.rs | ||
intern.rs | ||
label.rs | ||
lib.rs | ||
removal_detection.rs | ||
traversal.rs |