bevy/crates
Nathan Ward ecb78048cf [ecs] Improve Commands performance (#2332)
# Objective

- Currently `Commands` are quite slow due to the need to allocate for each command and wrap it in a `Box<dyn Command>`.
- For example:
```rust
fn my_system(mut cmds: Commands) {
    cmds.spawn().insert(42).insert(3.14);
}
```
will have 3 separate `Box<dyn Command>` that need to be allocated and ran.

## Solution

- Utilize a specialized data structure keyed `CommandQueueInner`. 
- The purpose of `CommandQueueInner` is to hold a collection of commands in contiguous memory. 
- This allows us to store each `Command` type contiguously in memory and quickly iterate through them and apply the `Command::write` trait function to each element.
2021-07-16 19:57:20 +00:00
..
bevy_app Remove unused deps (#2455) 2021-07-14 20:52:50 +00:00
bevy_asset Update minimal version requirements for dependencies (#2460) 2021-07-15 21:25:49 +00:00
bevy_audio Update minimal version requirements for dependencies (#2460) 2021-07-15 21:25:49 +00:00
bevy_core Fixes Timer Precision Error Causing Panic (#2362) 2021-06-26 19:49:34 +00:00
bevy_derive Remove unused deps (#2455) 2021-07-14 20:52:50 +00:00
bevy_diagnostic Remove unused deps (#2455) 2021-07-14 20:52:50 +00:00
bevy_dylib fix clippy warning failing on CI (#2353) 2021-06-18 00:08:39 +00:00
bevy_dynamic_plugin Various cleanups (#2046) 2021-05-01 20:07:06 +00:00
bevy_ecs [ecs] Improve Commands performance (#2332) 2021-07-16 19:57:20 +00:00
bevy_gilrs Release 0.5.0 (#1835) 2021-04-06 18:48:48 +00:00
bevy_gltf Update minimal version requirements for dependencies (#2460) 2021-07-15 21:25:49 +00:00
bevy_input Hide re-exported docs (#1985) 2021-04-27 18:29:33 +00:00
bevy_internal Add feature flag to enable wasm for bevy_audio (#2397) 2021-07-14 03:20:21 +00:00
bevy_log Hide re-exported docs (#1985) 2021-04-27 18:29:33 +00:00
bevy_macro_utils Remove unused deps (#2455) 2021-07-14 20:52:50 +00:00
bevy_math Update glam (0.15.1) and hexasphere (3.4) (#2199) 2021-05-18 18:56:15 +00:00
bevy_pbr Remove unused deps (#2455) 2021-07-14 20:52:50 +00:00
bevy_reflect Document FromType trait (#2323) 2021-06-09 18:32:18 +00:00
bevy_render Update minimal version requirements for dependencies (#2460) 2021-07-15 21:25:49 +00:00
bevy_scene [ecs] Improve Commands performance (#2332) 2021-07-16 19:57:20 +00:00
bevy_sprite docs: add hint that texture atlas padding is between tiles (#2447) 2021-07-12 20:29:28 +00:00
bevy_tasks Update minimal version requirements for dependencies (#2460) 2021-07-15 21:25:49 +00:00
bevy_text Update minimal version requirements for dependencies (#2460) 2021-07-15 21:25:49 +00:00
bevy_transform [ecs] Improve Commands performance (#2332) 2021-07-16 19:57:20 +00:00
bevy_ui Update minimal version requirements for dependencies (#2460) 2021-07-15 21:25:49 +00:00
bevy_utils bevy_utils: Re-introduce with_capacity(). (#2393) 2021-06-26 19:49:35 +00:00
bevy_wgpu Update wgpu requirement from 0.8 to 0.9 (#2371) 2021-06-24 16:38:02 +00:00
bevy_window Adds an alias mouse position -> cursor position (#2038) 2021-04-28 21:26:47 +00:00
bevy_winit Don't update when suspended to avoid GPU use on iOS. (#2482) 2021-07-16 00:50:39 +00:00