bevy/crates
David M. Lary 0dccfb5788
Stepping disabled performance fix (#11959)
# Objective

* Fixes #11932 (performance impact when stepping is disabled)

## Solution

The `Option<FixedBitSet>` argument added to `ScheduleExecutor::run()` in
#8453 caused a measurable performance impact even when stepping is
disabled. This can be seen by the benchmark of running `Schedule:run()`
on an empty schedule in a tight loop
(https://github.com/bevyengine/bevy/issues/11932#issuecomment-1950970236).

I was able to get the same performance results as on 0.12.1 by changing
the argument
`ScheduleExecutor::run()` from `Option<FixedBitSet>` to
`Option<&FixedBitSet>`. The down-side of this change is that
`Schedule::run()` now takes about 6% longer (3.7319 ms vs 3.9855ns) when
stepping is enabled

---

## Changelog
* Change `ScheduleExecutor::run()` `_skipped_systems` from
`Option<FixedBitSet>` to `Option<&FixedBitSet>`
* Added a few benchmarks to measure `Schedule::run()` performance with
various executors
2024-02-19 17:02:14 +00:00
..
bevy_a11y Release 0.13.0 (#11920) 2024-02-17 09:24:25 +00:00
bevy_animation Rework animation to be done in two phases. (#11707) 2024-02-19 14:59:54 +00:00
bevy_app Use is method instead of downcast_ref::<T>().is_some() in App::is_plugin_added (#11949) 2024-02-18 22:17:17 +00:00
bevy_asset Qualify embedded_asset expansion with $crate:: (#11961) 2024-02-18 21:52:32 +00:00
bevy_audio Release 0.13.0 (#11920) 2024-02-17 09:24:25 +00:00
bevy_core Release 0.13.0 (#11920) 2024-02-17 09:24:25 +00:00
bevy_core_pipeline rename Camera3dBundle's 'dither' field to 'deband_dither' to align with Camera2dBundle (#11939) 2024-02-19 14:01:35 +00:00
bevy_derive Release 0.13.0 (#11920) 2024-02-17 09:24:25 +00:00
bevy_diagnostic Release 0.13.0 (#11920) 2024-02-17 09:24:25 +00:00
bevy_dylib Release 0.13.0 (#11920) 2024-02-17 09:24:25 +00:00
bevy_dynamic_plugin Release 0.13.0 (#11920) 2024-02-17 09:24:25 +00:00
bevy_ecs Stepping disabled performance fix (#11959) 2024-02-19 17:02:14 +00:00
bevy_ecs_compile_fail_tests Deprecated Various Component Methods from Query and QueryState (#9920) 2024-02-04 01:01:59 +00:00
bevy_encase_derive Release 0.13.0 (#11920) 2024-02-17 09:24:25 +00:00
bevy_gilrs Release 0.13.0 (#11920) 2024-02-17 09:24:25 +00:00
bevy_gizmos Release 0.13.0 (#11920) 2024-02-17 09:24:25 +00:00
bevy_gltf Gltf loader now shows which file is missing pre baked tangents (#11854) 2024-02-19 16:49:32 +00:00
bevy_hierarchy Release 0.13.0 (#11920) 2024-02-17 09:24:25 +00:00
bevy_input also look in just_pressed touches for position (#7743) 2024-02-19 16:44:50 +00:00
bevy_internal Rework animation to be done in two phases. (#11707) 2024-02-19 14:59:54 +00:00
bevy_log Release 0.13.0 (#11920) 2024-02-17 09:24:25 +00:00
bevy_macro_utils Update to toml_edit 0.22 (#11973) 2024-02-19 08:11:29 +00:00
bevy_macros_compile_fail_tests Standardize toml format with taplo (#10594) 2023-11-21 01:04:14 +00:00
bevy_math Add single-f32 constructors for a few (very few) primitives (#11934) 2024-02-18 07:43:45 +00:00
bevy_mikktspace Release 0.13.0 (#11920) 2024-02-17 09:24:25 +00:00
bevy_pbr Release 0.13.0 (#11920) 2024-02-17 09:24:25 +00:00
bevy_ptr Release 0.13.0 (#11920) 2024-02-17 09:24:25 +00:00
bevy_reflect Add method for querying whether a given short type path is ambiguous (#11840) 2024-02-19 16:47:11 +00:00
bevy_reflect_compile_fail_tests bevy_reflect_derive: Clean up attribute logic (#11777) 2024-02-12 15:16:27 +00:00
bevy_render refactor: Extract parallel queue abstraction (#7348) 2024-02-19 16:31:15 +00:00
bevy_scene Release 0.13.0 (#11920) 2024-02-17 09:24:25 +00:00
bevy_sprite Implement Debug for SpriteBundle and SpriteSheetBundle (#10506) 2024-02-19 16:38:48 +00:00
bevy_tasks Release 0.13.0 (#11920) 2024-02-17 09:24:25 +00:00
bevy_text Release 0.13.0 (#11920) 2024-02-17 09:24:25 +00:00
bevy_time Release 0.13.0 (#11920) 2024-02-17 09:24:25 +00:00
bevy_transform Release 0.13.0 (#11920) 2024-02-17 09:24:25 +00:00
bevy_ui Release 0.13.0 (#11920) 2024-02-17 09:24:25 +00:00
bevy_utils refactor: Extract parallel queue abstraction (#7348) 2024-02-19 16:31:15 +00:00
bevy_window typo (#11955) 2024-02-18 20:16:15 +00:00
bevy_winit Release 0.13.0 (#11920) 2024-02-17 09:24:25 +00:00