bevy/crates
JoJoJet 3d6706f86d Speed up Query::get_many and add benchmarks (#6400)
# Objective

* Add benchmarks for `Query::get_many`.
* Speed up `Query::get_many`.

## Solution

Previously, `get_many` and `get_many_mut` used the method `array::map`, which tends to optimize very poorly. This PR replaces uses of that method with loops.

## Benchmarks

| Benchmark name                       | Execution time | Change from this PR |
|--------------------------------------|----------------|---------------------|
| query_get_many_2/50000_calls_table   | 1.3732 ms      | -24.967%            |
| query_get_many_2/50000_calls_sparse  | 1.3826 ms      | -24.572%            |
| query_get_many_5/50000_calls_table   | 2.6833 ms      | -30.681%            |
| query_get_many_5/50000_calls_sparse  | 2.9936 ms      | -30.672%            |
| query_get_many_10/50000_calls_table  | 5.7771 ms      | -36.950%            |
| query_get_many_10/50000_calls_sparse | 7.4345 ms      | -36.987%            |
2022-11-01 03:51:41 +00:00
..
bevy_animation add ReflectAsset and ReflectHandle (#5923) 2022-10-28 20:42:33 +00:00
bevy_app Unique plugin (#6411) 2022-10-31 16:12:19 +00:00
bevy_asset Rename Handle::as_weak() to cast_weak() (#5321) 2022-10-28 22:43:14 +00:00
bevy_audio Add a way to toggle AudioSink (#6321) 2022-10-31 15:57:51 +00:00
bevy_core Add serialize feature to bevy_core (#6423) 2022-10-31 21:20:57 +00:00
bevy_core_pipeline Rework ViewTarget to better support post processing (#6415) 2022-10-31 20:22:18 +00:00
bevy_derive Bump Version after Release (#5576) 2022-08-05 02:03:05 +00:00
bevy_diagnostic Add Exponential Moving Average into diagnostics (#4992) 2022-10-24 13:46:37 +00:00
bevy_dylib Bump Version after Release (#5576) 2022-08-05 02:03:05 +00:00
bevy_dynamic_plugin Bump Version after Release (#5576) 2022-08-05 02:03:05 +00:00
bevy_ecs Speed up Query::get_many and add benchmarks (#6400) 2022-11-01 03:51:41 +00:00
bevy_ecs_compile_fail_tests fix: specify required trybuild patch version (#6333) 2022-10-25 10:21:31 +00:00
bevy_encase_derive Bump Version after Release (#5576) 2022-08-05 02:03:05 +00:00
bevy_gilrs feat: add GamepadInfo, expose gamepad names (#6342) 2022-10-24 14:33:50 +00:00
bevy_gltf fix nightly clippy warnings (#6395) 2022-10-28 21:03:01 +00:00
bevy_hierarchy Add methods to Query<&Children> and Query<&Parent> to iterate over descendants and ancestors (#6185) 2022-10-31 15:57:50 +00:00
bevy_input Derive Reflect + FromReflect for input types (#6232) 2022-10-26 19:52:20 +00:00
bevy_internal Add serialize feature to bevy_core (#6423) 2022-10-31 21:20:57 +00:00
bevy_log Update tracing-chrome to 0.6.0 (#6398) 2022-10-28 21:51:38 +00:00
bevy_macro_utils fix nightly clippy warnings (#6395) 2022-10-28 21:03:01 +00:00
bevy_math add serialize feature to bevy_transform (#6379) 2022-10-31 16:12:15 +00:00
bevy_mikktspace Bump Version after Release (#5576) 2022-08-05 02:03:05 +00:00
bevy_pbr Freeing memory held by visible entities vector (#3009) 2022-10-31 15:36:08 +00:00
bevy_ptr Bump Version after Release (#5576) 2022-08-05 02:03:05 +00:00
bevy_reflect add ReflectDefault to std types (#6429) 2022-10-31 16:35:22 +00:00
bevy_render Rework ViewTarget to better support post processing (#6415) 2022-10-31 20:22:18 +00:00
bevy_scene bevy_scene: Serialize entities to map (#6416) 2022-10-31 16:35:18 +00:00
bevy_sprite Remove outdated uses of single-tuple bundles (#6406) 2022-10-29 18:15:28 +00:00
bevy_tasks fix nightly clippy warnings (#6395) 2022-10-28 21:03:01 +00:00
bevy_text Rename Handle::as_weak() to cast_weak() (#5321) 2022-10-28 22:43:14 +00:00
bevy_time Add FromReflect for Timer (#6422) 2022-10-30 16:02:31 +00:00
bevy_transform add serialize feature to bevy_transform (#6379) 2022-10-31 16:12:15 +00:00
bevy_ui Remove outdated uses of single-tuple bundles (#6406) 2022-10-29 18:15:28 +00:00
bevy_utils Remove Sync bound from Local (#5483) 2022-09-12 04:15:55 +00:00
bevy_window Fix return_after_run example (#6420) 2022-10-31 16:35:20 +00:00
bevy_winit do not set cursor grab on window creation if not asked for (#6381) 2022-10-31 16:12:18 +00:00