Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Optimize transform propagation (#14373)
# Objective - Optimize the `propagate_recursive` function in the transform system to reduce CPU usage. - Addresses performance bottleneck in transform propagation, especially for scenes with complex hierarchies. ## Solution - Avoided unnecessary cloning of `global_transform` when creating the tuple in the `propagate_recursive` function. - Used `as_ref()` method on `Mut<GlobalTransform>` when passing it to the recursive call, avoiding an extra dereference. - These changes significantly reduced the CPU usage of this function from 4.91% to 1.16% of self function time. ## Testing - Performance testing was conducted using the Hotspot GUI tool, comparing CPU usage before and after the changes. - `cargo run --release --example many_foxes` - Tested on Fedora Linux. --- ## Showcase Here are the PERF GUI results showing the improvement in CPU usage: ### Before  ### After  As we can see, the CPU usage for the `propagate_recursive` function has been reduced from 4.91% to 1.16%, resulting in a significant performance improvement. ## Migration Guide This change does not introduce any breaking changes. Users of the Bevy engine will automatically benefit from this performance improvement without needing to modify their code.
- Loading branch information