Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Endianness based Entity representation #3788

Closed
wants to merge 7 commits into from

Conversation

james7132
Copy link
Member

@james7132 james7132 commented Jan 28, 2022

Objective

Fixes #2346. Optimize various functions on Entity. This impacts the performance of all corners of ECS and the engine as a whole.

Solution

Use #[repr(C, align(8))] to make Entity a pusedo-u64. This is reliant on the endianness of the target platform, so two different definitions of Entity are made, one for little endian and one for big endian. This significantly improves the assembly generated for many operations without adding to the complexity of the type's implementation (see https://godbolt.org/z/jcxY5G9r4). The one major cost is that accessing generation by itself requires one more instruction.

Since the order of the fields is no longer consistent from platform to platform, a explicit implementation of PartialOrd is required to enforce correctness. As to_bits becomes a no-op when inlined, this comparison, while looking complex, boils down to a single u64 comparison.

This PR aims to get the benefits of #2372 without introducing significant code complexity.

@github-actions github-actions bot added the S-Needs-Triage This issue needs to be labelled label Jan 28, 2022
@james7132 james7132 added A-ECS Entities, components, systems, and events C-Performance A change motivated by improving speed, memory usage or compile times and removed S-Needs-Triage This issue needs to be labelled labels Jan 28, 2022
@james7132
Copy link
Member Author

bench.txt

Here's a updated set of benchmarks from my machine (running off of a AMD 5950x). 34 benchmarks saw a tangible improvement, 24 saw a tangible regression in performance.

@colepoirier
Copy link
Contributor

Most pf the regressions don’t look too bad and the overall improvements are substantial especial on 2 or 3 of the benchmarks. I also think that those looking for determinism will be okay having to specify that themselves with regard to endianness of entities as this will not be the only concern they need to make sure they get right when seeking such determinism. I am in favour of this change. LGTM!

Copy link
Member

@alice-i-cecile alice-i-cecile left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like the look of the benchmarks, and the code changes are very well documented. Presumably this will play fine with niching?

@alice-i-cecile
Copy link
Member

In particular, the improvements to the get perf will be very nice for #3742.

@colepoirier
Copy link
Contributor

What is niching @alice-i-cecile ?

@alice-i-cecile
Copy link
Member

What is niching @alice-i-cecile ?

The ability to store an Option<T> in the same amount of memory as a T, typically by reserving one value for None. In this case we'd reduce the size of Option<Entity> substantially, at the cost of being able to store one less entity. For a different PR, but also very nice and obviously related.

@colepoirier
Copy link
Contributor

Ah yes, that is indeed quite awesome! As far as I can tell this PR should play well with niching.

@james7132
Copy link
Member Author

I like the look of the benchmarks, and the code changes are very well documented. Presumably this will play fine with niching?

Niching only really has an effect on the assembly generated for constructing an Entity.
Provided the NonZeroU32 for generation is already constructed outside of the Entity, this should play well with it. Though adding a potential panic is going to slow it down, I think the memory savings will be worth the loss.

@james7132
Copy link
Member Author

Reran benchmarks now that we have ecs_bench_suite in the source tree. The results are largely the same. There are a few consistent gains and losses, but most notably the 2x speedup with World::get and ~10% speedup with small/medium sized commands. Some of the iteration benchmarks are too inconsistent to tell the difference.

group                                          aligned                                 main
-----                                          -------                                 ----
add_remove_component/sparse_set                1.00  1242.8±71.22µs        ? ?/sec     1.07  1336.0±79.67µs        ? ?/sec
add_remove_component/table                     1.00  1576.4±59.02µs        ? ?/sec     1.04  1637.9±26.52µs        ? ?/sec
add_remove_component_big/sparse_set            1.00  1436.9±347.70µs        ? ?/sec    1.03  1485.3±379.53µs        ? ?/sec
add_remove_component_big/table                 1.00      3.2±0.19ms        ? ?/sec     1.04      3.3±0.24ms        ? ?/sec
added_archetypes/archetype_count/100           1.00  1330.1±35.56µs        ? ?/sec     1.07  1422.9±39.29µs        ? ?/sec
added_archetypes/archetype_count/1000          1.00      2.2±0.13ms        ? ?/sec     1.08      2.4±0.14ms        ? ?/sec
added_archetypes/archetype_count/10000         1.00     16.0±0.83ms        ? ?/sec     1.04     16.7±0.88ms        ? ?/sec
added_archetypes/archetype_count/200           1.00  1430.7±39.57µs        ? ?/sec     1.07  1535.5±44.08µs        ? ?/sec
added_archetypes/archetype_count/2000          1.00      3.7±0.22ms        ? ?/sec     1.02      3.8±0.25ms        ? ?/sec
added_archetypes/archetype_count/500           1.00  1743.3±67.96µs        ? ?/sec     1.06  1849.2±61.67µs        ? ?/sec
added_archetypes/archetype_count/5000          1.00      7.8±0.77ms        ? ?/sec     1.05      8.2±0.76ms        ? ?/sec
busy_systems/01x_entities_03_systems           1.00     34.0±2.21µs        ? ?/sec     1.03     35.0±1.77µs        ? ?/sec
busy_systems/01x_entities_06_systems           1.03     64.8±4.24µs        ? ?/sec     1.00     63.2±3.36µs        ? ?/sec
busy_systems/01x_entities_09_systems           1.00     96.0±3.55µs        ? ?/sec     1.00     95.6±4.87µs        ? ?/sec
busy_systems/01x_entities_12_systems           1.00    124.1±5.58µs        ? ?/sec     1.01    124.9±5.58µs        ? ?/sec
busy_systems/01x_entities_15_systems           1.01    156.5±5.82µs        ? ?/sec     1.00    154.3±7.65µs        ? ?/sec
busy_systems/02x_entities_03_systems           1.04     61.3±3.42µs        ? ?/sec     1.00     59.0±2.61µs        ? ?/sec
busy_systems/02x_entities_06_systems           1.00    111.0±3.71µs        ? ?/sec     1.09    121.2±8.23µs        ? ?/sec
busy_systems/02x_entities_09_systems           1.06    178.0±5.31µs        ? ?/sec     1.00   168.4±10.03µs        ? ?/sec
busy_systems/02x_entities_12_systems           1.00    223.6±7.21µs        ? ?/sec     1.00    224.2±7.56µs        ? ?/sec
busy_systems/02x_entities_15_systems           1.03   286.0±12.48µs        ? ?/sec     1.00   278.5±10.51µs        ? ?/sec
busy_systems/03x_entities_03_systems           1.04     89.4±4.31µs        ? ?/sec     1.00     85.7±6.54µs        ? ?/sec
busy_systems/03x_entities_06_systems           1.00    157.9±5.05µs        ? ?/sec     1.09    171.9±7.10µs        ? ?/sec
busy_systems/03x_entities_09_systems           1.00    235.9±7.80µs        ? ?/sec     1.01   238.7±10.03µs        ? ?/sec
busy_systems/03x_entities_12_systems           1.03   331.5±12.23µs        ? ?/sec     1.00   320.4±14.46µs        ? ?/sec
busy_systems/03x_entities_15_systems           1.00   401.6±20.35µs        ? ?/sec     1.02   409.8±25.16µs        ? ?/sec
busy_systems/04x_entities_03_systems           1.07    121.0±9.62µs        ? ?/sec     1.00    113.5±6.15µs        ? ?/sec
busy_systems/04x_entities_06_systems           1.12   230.1±14.25µs        ? ?/sec     1.00    204.7±9.10µs        ? ?/sec
busy_systems/04x_entities_09_systems           1.11   346.1±20.02µs        ? ?/sec     1.00   310.9±12.71µs        ? ?/sec
busy_systems/04x_entities_12_systems           1.00   416.4±15.58µs        ? ?/sec     1.00   418.3±15.36µs        ? ?/sec
busy_systems/04x_entities_15_systems           1.00   521.5±16.44µs        ? ?/sec     1.00   519.5±22.66µs        ? ?/sec
busy_systems/05x_entities_03_systems           1.02   137.6±12.75µs        ? ?/sec     1.00    134.4±6.78µs        ? ?/sec
busy_systems/05x_entities_06_systems           1.07   302.9±17.59µs        ? ?/sec     1.00   282.8±12.50µs        ? ?/sec
busy_systems/05x_entities_09_systems           1.14   443.5±21.45µs        ? ?/sec     1.00   390.7±12.89µs        ? ?/sec
busy_systems/05x_entities_12_systems           1.03   554.0±20.34µs        ? ?/sec     1.00   537.1±16.17µs        ? ?/sec
busy_systems/05x_entities_15_systems           1.01   675.5±37.37µs        ? ?/sec     1.00   669.8±26.23µs        ? ?/sec
contrived/01x_entities_03_systems              1.00     22.2±1.53µs        ? ?/sec     1.00     22.3±1.68µs        ? ?/sec
contrived/01x_entities_06_systems              1.03     44.3±2.18µs        ? ?/sec     1.00     42.9±2.95µs        ? ?/sec
contrived/01x_entities_09_systems              1.04     63.0±2.89µs        ? ?/sec     1.00     60.3±3.20µs        ? ?/sec
contrived/01x_entities_12_systems              1.01     81.8±4.76µs        ? ?/sec     1.00     81.4±4.75µs        ? ?/sec
contrived/01x_entities_15_systems              1.05    101.6±4.93µs        ? ?/sec     1.00     96.4±3.82µs        ? ?/sec
contrived/02x_entities_03_systems              1.09     34.6±1.90µs        ? ?/sec     1.00     31.8±2.16µs        ? ?/sec
contrived/02x_entities_06_systems              1.04     64.0±3.50µs        ? ?/sec     1.00     61.3±2.51µs        ? ?/sec
contrived/02x_entities_09_systems              1.05     96.0±6.52µs        ? ?/sec     1.00     91.3±4.45µs        ? ?/sec
contrived/02x_entities_12_systems              1.04    124.9±7.47µs        ? ?/sec     1.00    120.7±3.90µs        ? ?/sec
contrived/02x_entities_15_systems              1.06    157.5±9.45µs        ? ?/sec     1.00    148.0±5.08µs        ? ?/sec
contrived/03x_entities_03_systems              1.14     47.4±4.14µs        ? ?/sec     1.00     41.7±1.78µs        ? ?/sec
contrived/03x_entities_06_systems              1.08     88.9±5.87µs        ? ?/sec     1.00     82.5±3.66µs        ? ?/sec
contrived/03x_entities_09_systems              1.02    127.3±6.52µs        ? ?/sec     1.00    124.5±3.50µs        ? ?/sec
contrived/03x_entities_12_systems              1.02    173.3±8.83µs        ? ?/sec     1.00    170.4±3.88µs        ? ?/sec
contrived/03x_entities_15_systems              1.02    210.4±8.89µs        ? ?/sec     1.00    206.7±6.85µs        ? ?/sec
contrived/04x_entities_03_systems              1.05     57.8±4.06µs        ? ?/sec     1.00     55.1±2.12µs        ? ?/sec
contrived/04x_entities_06_systems              1.05    109.0±7.52µs        ? ?/sec     1.00    103.7±3.06µs        ? ?/sec
contrived/04x_entities_09_systems              1.02    161.1±8.31µs        ? ?/sec     1.00    158.1±7.62µs        ? ?/sec
contrived/04x_entities_12_systems              1.03   214.5±10.34µs        ? ?/sec     1.00    209.2±8.33µs        ? ?/sec
contrived/04x_entities_15_systems              1.06   275.4±11.28µs        ? ?/sec     1.00    259.3±6.90µs        ? ?/sec
contrived/05x_entities_03_systems              1.04     65.8±5.83µs        ? ?/sec     1.00     63.1±2.85µs        ? ?/sec
contrived/05x_entities_06_systems              1.01    128.3±8.13µs        ? ?/sec     1.00    127.3±5.63µs        ? ?/sec
contrived/05x_entities_09_systems              1.01   191.8±13.14µs        ? ?/sec     1.00    190.3±5.64µs        ? ?/sec
contrived/05x_entities_12_systems              1.03   254.5±12.39µs        ? ?/sec     1.00    247.3±7.70µs        ? ?/sec
contrived/05x_entities_15_systems              1.02   317.9±13.27µs        ? ?/sec     1.00   311.7±13.93µs        ? ?/sec
empty_commands/0_entities                      1.00      5.4±0.03ns        ? ?/sec     1.02      5.5±0.46ns        ? ?/sec
empty_systems/000_systems                      1.00  1226.6±54.40ns        ? ?/sec     1.06  1298.5±81.28ns        ? ?/sec
empty_systems/001_systems                      1.00      5.9±0.26µs        ? ?/sec     1.05      6.3±0.16µs        ? ?/sec
empty_systems/002_systems                      1.00      7.0±0.24µs        ? ?/sec     1.03      7.2±0.75µs        ? ?/sec
empty_systems/003_systems                      1.00      8.5±0.37µs        ? ?/sec     1.01      8.5±0.94µs        ? ?/sec
empty_systems/004_systems                      1.00      9.6±0.55µs        ? ?/sec     1.01      9.7±0.67µs        ? ?/sec
empty_systems/005_systems                      1.01     11.1±0.88µs        ? ?/sec     1.00     10.9±0.90µs        ? ?/sec
empty_systems/010_systems                      1.03     17.3±0.93µs        ? ?/sec     1.00     16.7±1.44µs        ? ?/sec
empty_systems/015_systems                      1.04     22.6±1.88µs        ? ?/sec     1.00     21.8±1.67µs        ? ?/sec
empty_systems/020_systems                      1.00     25.9±3.30µs        ? ?/sec     1.06     27.6±2.42µs        ? ?/sec
empty_systems/025_systems                      1.00     31.8±2.49µs        ? ?/sec     1.01     32.0±2.30µs        ? ?/sec
empty_systems/030_systems                      1.00     35.0±3.89µs        ? ?/sec     1.07     37.3±2.42µs        ? ?/sec
empty_systems/035_systems                      1.01     41.0±3.04µs        ? ?/sec     1.00     40.6±3.78µs        ? ?/sec
empty_systems/040_systems                      1.00     44.7±3.53µs        ? ?/sec     1.05     46.7±3.37µs        ? ?/sec
empty_systems/045_systems                      1.00     49.6±3.46µs        ? ?/sec     1.04     51.8±2.13µs        ? ?/sec
empty_systems/050_systems                      1.00     53.4±3.71µs        ? ?/sec     1.06     56.5±2.70µs        ? ?/sec
empty_systems/055_systems                      1.00     58.5±3.41µs        ? ?/sec     1.04     60.7±3.09µs        ? ?/sec
empty_systems/060_systems                      1.00     60.5±4.04µs        ? ?/sec     1.06     64.4±3.12µs        ? ?/sec
empty_systems/065_systems                      1.00     66.5±5.02µs        ? ?/sec     1.04     69.3±3.32µs        ? ?/sec
empty_systems/070_systems                      1.00     70.1±3.99µs        ? ?/sec     1.03     72.0±3.79µs        ? ?/sec
empty_systems/075_systems                      1.00     73.3±4.35µs        ? ?/sec     1.09     79.7±4.34µs        ? ?/sec
empty_systems/080_systems                      1.00     77.1±4.74µs        ? ?/sec     1.06     82.0±3.35µs        ? ?/sec
empty_systems/085_systems                      1.00     82.4±5.08µs        ? ?/sec     1.03     84.8±5.46µs        ? ?/sec
empty_systems/090_systems                      1.00     86.9±4.92µs        ? ?/sec     1.05     91.0±3.71µs        ? ?/sec
empty_systems/095_systems                      1.00     89.7±5.60µs        ? ?/sec     1.07     96.0±4.17µs        ? ?/sec
empty_systems/100_systems                      1.00     94.0±4.41µs        ? ?/sec     1.09    102.7±3.17µs        ? ?/sec
fake_commands/2000_commands                    1.15      8.2±0.33µs        ? ?/sec     1.00      7.2±0.14µs        ? ?/sec
fake_commands/4000_commands                    1.17     16.2±0.56µs        ? ?/sec     1.00     13.8±0.36µs        ? ?/sec
fake_commands/6000_commands                    1.15     24.0±0.09µs        ? ?/sec     1.00     20.9±0.13µs        ? ?/sec
fake_commands/8000_commands                    1.14     32.1±0.12µs        ? ?/sec     1.00     28.1±0.63µs        ? ?/sec
for_each_iter                                  1.00     27.3±0.30ms        ? ?/sec     1.00     27.3±0.33ms        ? ?/sec
for_each_par_iter/threads/1                    1.00     34.8±2.65ms        ? ?/sec     1.00     34.8±2.59ms        ? ?/sec
for_each_par_iter/threads/16                   1.00      4.6±0.14ms        ? ?/sec     1.04      4.8±0.58ms        ? ?/sec
for_each_par_iter/threads/2                    1.01     21.0±0.79ms        ? ?/sec     1.00     20.8±0.59ms        ? ?/sec
for_each_par_iter/threads/32                   1.00      4.9±0.09ms        ? ?/sec     1.01      4.9±0.21ms        ? ?/sec
for_each_par_iter/threads/4                    1.00     13.3±0.35ms        ? ?/sec     1.00     13.3±0.45ms        ? ?/sec
for_each_par_iter/threads/8                    1.00      7.3±0.18ms        ? ?/sec     1.01      7.4±0.28ms        ? ?/sec
fragmented_iter/base                           1.04   408.4±16.29ns        ? ?/sec     1.00   394.5±24.19ns        ? ?/sec
fragmented_iter/foreach                        1.03   235.0±25.10ns        ? ?/sec     1.00   229.1±16.14ns        ? ?/sec
get_component/base                             1.00   1038.1±6.16µs        ? ?/sec     1.05  1087.0±26.57µs        ? ?/sec
get_component/system                           1.00   760.1±15.67µs        ? ?/sec     1.03   784.3±15.76µs        ? ?/sec
get_or_spawn/batched                           1.00   372.8±26.18µs        ? ?/sec     1.06   395.3±29.38µs        ? ?/sec
get_or_spawn/individual                        1.00   875.1±72.34µs        ? ?/sec     1.02   890.6±83.36µs        ? ?/sec
heavy_compute/base                             1.01    368.0±5.53µs        ? ?/sec     1.00    364.3±5.07µs        ? ?/sec
insert_commands/insert                         1.00   749.9±47.93µs        ? ?/sec     1.03   775.1±59.14µs        ? ?/sec
insert_commands/insert_batch                   1.00   370.4±22.95µs        ? ?/sec     1.06   393.3±29.16µs        ? ?/sec
many_maps_iter                                 1.00     27.2±0.06ms        ? ?/sec     1.00     27.2±0.04ms        ? ?/sec
many_maps_par_iter/threads/1                   1.00     17.4±0.77ms        ? ?/sec     1.00     17.4±0.94ms        ? ?/sec
many_maps_par_iter/threads/16                  1.00      2.2±0.05ms        ? ?/sec     1.00      2.2±0.05ms        ? ?/sec
many_maps_par_iter/threads/2                   1.00     10.4±0.26ms        ? ?/sec     1.00     10.3±0.27ms        ? ?/sec
many_maps_par_iter/threads/32                  1.00      2.1±0.03ms        ? ?/sec     1.00      2.1±0.02ms        ? ?/sec
many_maps_par_iter/threads/4                   1.01      6.6±0.08ms        ? ?/sec     1.00      6.6±0.09ms        ? ?/sec
many_maps_par_iter/threads/8                   1.00      3.6±0.05ms        ? ?/sec     1.01      3.7±0.04ms        ? ?/sec
no_archetypes/system_count/0                   1.00      2.5±0.36µs        ? ?/sec     1.08      2.7±0.36µs        ? ?/sec
no_archetypes/system_count/100                 1.02    115.2±3.72µs        ? ?/sec     1.00    112.5±3.48µs        ? ?/sec
no_archetypes/system_count/20                  1.00     26.2±1.07µs        ? ?/sec     1.05     27.5±1.94µs        ? ?/sec
no_archetypes/system_count/40                  1.00     46.7±1.42µs        ? ?/sec     1.00     46.5±1.68µs        ? ?/sec
no_archetypes/system_count/60                  1.02     68.9±2.47µs        ? ?/sec     1.00     67.6±1.55µs        ? ?/sec
no_archetypes/system_count/80                  1.03     93.3±2.89µs        ? ?/sec     1.00     90.7±2.96µs        ? ?/sec
overhead_par_iter/threads/1                    1.00     43.1±3.90µs        ? ?/sec     1.12     48.1±3.50µs        ? ?/sec
overhead_par_iter/threads/16                   1.00     72.6±2.30µs        ? ?/sec     1.20     87.1±2.80µs        ? ?/sec
overhead_par_iter/threads/2                    1.13     59.4±5.58µs        ? ?/sec     1.00     52.7±2.41µs        ? ?/sec
overhead_par_iter/threads/32                   1.00     76.1±2.84µs        ? ?/sec     1.07     81.3±3.29µs        ? ?/sec
overhead_par_iter/threads/4                    1.00     64.3±6.05µs        ? ?/sec     1.01     65.0±3.30µs        ? ?/sec
overhead_par_iter/threads/8                    1.00     64.5±2.00µs        ? ?/sec     1.30     83.7±3.59µs        ? ?/sec
query_get/50000_entities_sparse                1.00  1112.7±56.87µs        ? ?/sec     1.02  1133.8±91.54µs        ? ?/sec
query_get/50000_entities_table                 1.00   571.1±26.09µs        ? ?/sec     1.05   598.9±11.09µs        ? ?/sec
query_get_component/50000_entities_sparse      1.00  1261.6±55.91µs        ? ?/sec     1.03  1298.1±98.85µs        ? ?/sec
query_get_component/50000_entities_table       1.00  1219.1±42.39µs        ? ?/sec     1.03  1252.8±83.35µs        ? ?/sec
run_criteria/no/001_systems                    1.00  1428.2±106.90ns        ? ?/sec    1.00  1428.0±71.40ns        ? ?/sec
run_criteria/no/006_systems                    1.00  1684.0±94.57ns        ? ?/sec     1.22      2.1±0.24µs        ? ?/sec
run_criteria/no/011_systems                    1.00  1523.2±63.98ns        ? ?/sec     1.02  1550.6±94.98ns        ? ?/sec
run_criteria/no/016_systems                    1.23  1742.4±48.39ns        ? ?/sec     1.00  1421.6±61.97ns        ? ?/sec
run_criteria/no/021_systems                    1.20  1970.7±58.23ns        ? ?/sec     1.00  1646.0±75.01ns        ? ?/sec
run_criteria/no/026_systems                    1.04  1802.6±59.69ns        ? ?/sec     1.00  1732.1±29.61ns        ? ?/sec
run_criteria/no/031_systems                    1.02  1959.2±44.30ns        ? ?/sec     1.00  1918.6±78.46ns        ? ?/sec
run_criteria/no/036_systems                    1.05      2.2±0.18µs        ? ?/sec     1.00      2.1±0.07µs        ? ?/sec
run_criteria/no/041_systems                    1.00      2.3±0.08µs        ? ?/sec     1.00      2.3±0.08µs        ? ?/sec
run_criteria/no/046_systems                    1.06      2.6±0.35µs        ? ?/sec     1.00      2.5±0.24µs        ? ?/sec
run_criteria/no/051_systems                    1.21      3.4±0.77µs        ? ?/sec     1.00      2.8±0.27µs        ? ?/sec
run_criteria/no/056_systems                    1.59      4.5±1.57µs        ? ?/sec     1.00      2.8±0.33µs        ? ?/sec
run_criteria/no/061_systems                    1.24      5.1±1.08µs        ? ?/sec     1.00      4.1±0.68µs        ? ?/sec
run_criteria/no/066_systems                    1.00      4.4±2.05µs        ? ?/sec     1.07      4.7±1.29µs        ? ?/sec
run_criteria/no/071_systems                    1.00      6.0±1.40µs        ? ?/sec     1.50      9.0±3.34µs        ? ?/sec
run_criteria/no/076_systems                    1.00      7.1±2.47µs        ? ?/sec     1.10      7.8±3.29µs        ? ?/sec
run_criteria/no/081_systems                    1.00      8.5±2.28µs        ? ?/sec     1.08      9.3±3.51µs        ? ?/sec
run_criteria/no/086_systems                    1.00     10.3±2.08µs        ? ?/sec     1.05     10.8±3.78µs        ? ?/sec
run_criteria/no/091_systems                    1.00     12.3±2.68µs        ? ?/sec     1.00     12.3±3.91µs        ? ?/sec
run_criteria/no/096_systems                    1.00     13.3±2.31µs        ? ?/sec     1.20     15.9±2.05µs        ? ?/sec
run_criteria/no/101_systems                    1.00     15.2±2.41µs        ? ?/sec     1.10     16.8±1.09µs        ? ?/sec
run_criteria/no_with_labels/001_systems        1.02  1610.0±158.75ns        ? ?/sec    1.00  1575.9±166.15ns        ? ?/sec
run_criteria/no_with_labels/006_systems        1.00  1869.1±240.29ns        ? ?/sec    1.12      2.1±0.27µs        ? ?/sec
run_criteria/no_with_labels/011_systems        1.01  1695.3±85.94ns        ? ?/sec     1.00  1685.7±198.16ns        ? ?/sec
run_criteria/no_with_labels/016_systems        1.07  1560.1±44.70ns        ? ?/sec     1.00  1459.3±112.01ns        ? ?/sec
run_criteria/no_with_labels/021_systems        1.05  1757.3±54.65ns        ? ?/sec     1.00  1668.5±158.75ns        ? ?/sec
run_criteria/no_with_labels/026_systems        1.00  1882.8±83.95ns        ? ?/sec     1.01  1910.9±125.16ns        ? ?/sec
run_criteria/no_with_labels/031_systems        1.01      2.0±0.06µs        ? ?/sec     1.00  1990.9±197.48ns        ? ?/sec
run_criteria/no_with_labels/036_systems        1.00      2.2±0.05µs        ? ?/sec     1.14      2.5±0.35µs        ? ?/sec
run_criteria/no_with_labels/041_systems        1.00      2.2±0.08µs        ? ?/sec     1.33      3.0±0.78µs        ? ?/sec
run_criteria/no_with_labels/046_systems        1.00      2.5±0.42µs        ? ?/sec     1.08      2.7±0.64µs        ? ?/sec
run_criteria/no_with_labels/051_systems        1.00      2.4±0.10µs        ? ?/sec     1.29      3.1±1.79µs        ? ?/sec
run_criteria/no_with_labels/056_systems        1.00      2.6±0.16µs        ? ?/sec     1.00      2.6±0.35µs        ? ?/sec
run_criteria/no_with_labels/061_systems        1.00      3.1±0.33µs        ? ?/sec     1.29      4.0±1.87µs        ? ?/sec
run_criteria/no_with_labels/066_systems        1.00      3.9±0.70µs        ? ?/sec     1.02      4.0±0.97µs        ? ?/sec
run_criteria/no_with_labels/071_systems        1.00      4.0±1.10µs        ? ?/sec     1.30      5.2±3.06µs        ? ?/sec
run_criteria/no_with_labels/076_systems        1.00      4.5±1.26µs        ? ?/sec     1.16      5.2±2.79µs        ? ?/sec
run_criteria/no_with_labels/081_systems        1.32      5.7±2.18µs        ? ?/sec     1.00      4.3±1.17µs        ? ?/sec
run_criteria/no_with_labels/086_systems        1.09      6.5±2.25µs        ? ?/sec     1.00      5.9±2.94µs        ? ?/sec
run_criteria/no_with_labels/091_systems        1.00      7.3±2.13µs        ? ?/sec     1.01      7.3±3.01µs        ? ?/sec
run_criteria/no_with_labels/096_systems        1.00      8.4±3.04µs        ? ?/sec     1.24     10.3±4.85µs        ? ?/sec
run_criteria/no_with_labels/101_systems        1.00     10.5±3.44µs        ? ?/sec     1.08     11.4±4.69µs        ? ?/sec
run_criteria/yes/001_systems                   1.00      5.9±0.10µs        ? ?/sec     1.06      6.3±0.71µs        ? ?/sec
run_criteria/yes/006_systems                   1.00     12.5±0.48µs        ? ?/sec     1.03     12.9±1.18µs        ? ?/sec
run_criteria/yes/011_systems                   1.00     18.2±1.13µs        ? ?/sec     1.08     19.6±2.09µs        ? ?/sec
run_criteria/yes/016_systems                   1.00     22.1±2.14µs        ? ?/sec     1.00     22.1±2.93µs        ? ?/sec
run_criteria/yes/021_systems                   1.00     27.8±2.10µs        ? ?/sec     1.02     28.5±2.71µs        ? ?/sec
run_criteria/yes/026_systems                   1.00     33.3±2.27µs        ? ?/sec     1.00     33.3±3.06µs        ? ?/sec
run_criteria/yes/031_systems                   1.00     36.7±3.39µs        ? ?/sec     1.02     37.6±3.02µs        ? ?/sec
run_criteria/yes/036_systems                   1.00     41.4±3.86µs        ? ?/sec     1.08     44.8±4.27µs        ? ?/sec
run_criteria/yes/041_systems                   1.00     47.3±3.88µs        ? ?/sec     1.00     47.3±4.06µs        ? ?/sec
run_criteria/yes/046_systems                   1.00     50.7±3.54µs        ? ?/sec     1.05     53.3±3.14µs        ? ?/sec
run_criteria/yes/051_systems                   1.00     54.2±4.22µs        ? ?/sec     1.05     57.1±3.16µs        ? ?/sec
run_criteria/yes/056_systems                   1.00     58.3±4.50µs        ? ?/sec     1.06     62.0±3.41µs        ? ?/sec
run_criteria/yes/061_systems                   1.00     62.8±4.65µs        ? ?/sec     1.03     64.8±4.41µs        ? ?/sec
run_criteria/yes/066_systems                   1.00     66.6±4.79µs        ? ?/sec     1.00     66.9±3.91µs        ? ?/sec
run_criteria/yes/071_systems                   1.00     71.0±5.28µs        ? ?/sec     1.03     72.9±5.13µs        ? ?/sec
run_criteria/yes/076_systems                   1.00     72.0±5.48µs        ? ?/sec     1.09     78.8±4.31µs        ? ?/sec
run_criteria/yes/081_systems                   1.00     77.1±5.26µs        ? ?/sec     1.03     79.7±6.90µs        ? ?/sec
run_criteria/yes/086_systems                   1.00     81.6±5.21µs        ? ?/sec     1.04     84.7±6.56µs        ? ?/sec
run_criteria/yes/091_systems                   1.00     85.4±6.91µs        ? ?/sec     1.05     89.7±5.64µs        ? ?/sec
run_criteria/yes/096_systems                   1.00     88.6±6.38µs        ? ?/sec     1.05     92.7±5.10µs        ? ?/sec
run_criteria/yes/101_systems                   1.00     94.1±6.64µs        ? ?/sec     1.07    100.2±5.25µs        ? ?/sec
run_criteria/yes_using_query/001_systems       1.08      6.5±0.18µs        ? ?/sec     1.00      6.0±0.24µs        ? ?/sec
run_criteria/yes_using_query/006_systems       1.01     12.7±1.20µs        ? ?/sec     1.00     12.6±0.36µs        ? ?/sec
run_criteria/yes_using_query/011_systems       1.05     19.3±1.22µs        ? ?/sec     1.00     18.4±0.53µs        ? ?/sec
run_criteria/yes_using_query/016_systems       1.02     23.4±2.68µs        ? ?/sec     1.00     22.9±1.66µs        ? ?/sec
run_criteria/yes_using_query/021_systems       1.02     28.6±2.98µs        ? ?/sec     1.00     28.1±1.78µs        ? ?/sec
run_criteria/yes_using_query/026_systems       1.03     33.5±3.10µs        ? ?/sec     1.00     32.7±2.75µs        ? ?/sec
run_criteria/yes_using_query/031_systems       1.02     37.7±3.50µs        ? ?/sec     1.00     36.9±2.80µs        ? ?/sec
run_criteria/yes_using_query/036_systems       1.02     43.6±4.48µs        ? ?/sec     1.00     42.5±2.77µs        ? ?/sec
run_criteria/yes_using_query/041_systems       1.03     49.0±3.56µs        ? ?/sec     1.00     47.6±3.38µs        ? ?/sec
run_criteria/yes_using_query/046_systems       1.01     52.2±3.99µs        ? ?/sec     1.00     51.8±4.20µs        ? ?/sec
run_criteria/yes_using_query/051_systems       1.04     56.8±3.81µs        ? ?/sec     1.00     54.9±4.01µs        ? ?/sec
run_criteria/yes_using_query/056_systems       1.09     61.5±3.95µs        ? ?/sec     1.00     56.5±4.21µs        ? ?/sec
run_criteria/yes_using_query/061_systems       1.06     65.1±3.81µs        ? ?/sec     1.00     61.2±5.12µs        ? ?/sec
run_criteria/yes_using_query/066_systems       1.05     68.4±5.08µs        ? ?/sec     1.00     64.9±5.49µs        ? ?/sec
run_criteria/yes_using_query/071_systems       1.00     69.6±3.83µs        ? ?/sec     1.00     69.4±6.28µs        ? ?/sec
run_criteria/yes_using_query/076_systems       1.06     76.8±4.02µs        ? ?/sec     1.00     72.3±3.82µs        ? ?/sec
run_criteria/yes_using_query/081_systems       1.07     82.3±5.76µs        ? ?/sec     1.00     77.2±7.17µs        ? ?/sec
run_criteria/yes_using_query/086_systems       1.07     85.5±5.39µs        ? ?/sec     1.00     80.0±6.21µs        ? ?/sec
run_criteria/yes_using_query/091_systems       1.06     90.3±4.97µs        ? ?/sec     1.00     85.2±5.15µs        ? ?/sec
run_criteria/yes_using_query/096_systems       1.09     97.4±6.36µs        ? ?/sec     1.00     89.1±6.28µs        ? ?/sec
run_criteria/yes_using_query/101_systems       1.11    102.3±7.43µs        ? ?/sec     1.00     91.9±5.31µs        ? ?/sec
run_criteria/yes_using_resource/001_systems    1.00      5.8±0.34µs        ? ?/sec     1.03      6.0±0.18µs        ? ?/sec
run_criteria/yes_using_resource/006_systems    1.00     11.3±0.57µs        ? ?/sec     1.09     12.3±0.91µs        ? ?/sec
run_criteria/yes_using_resource/011_systems    1.00     17.2±0.55µs        ? ?/sec     1.06     18.3±1.15µs        ? ?/sec
run_criteria/yes_using_resource/016_systems    1.00     21.4±1.46µs        ? ?/sec     1.09     23.3±2.89µs        ? ?/sec
run_criteria/yes_using_resource/021_systems    1.00     26.5±2.48µs        ? ?/sec     1.10     29.2±2.52µs        ? ?/sec
run_criteria/yes_using_resource/026_systems    1.00     30.5±1.96µs        ? ?/sec     1.13     34.6±2.76µs        ? ?/sec
run_criteria/yes_using_resource/031_systems    1.00     34.5±3.42µs        ? ?/sec     1.08     37.4±3.59µs        ? ?/sec
run_criteria/yes_using_resource/036_systems    1.00     38.1±2.77µs        ? ?/sec     1.16     44.2±3.20µs        ? ?/sec
run_criteria/yes_using_resource/041_systems    1.00     42.5±2.92µs        ? ?/sec     1.15     49.1±3.60µs        ? ?/sec
run_criteria/yes_using_resource/046_systems    1.00     45.9±2.52µs        ? ?/sec     1.16     53.0±4.39µs        ? ?/sec
run_criteria/yes_using_resource/051_systems    1.00     50.3±3.52µs        ? ?/sec     1.15     58.0±4.44µs        ? ?/sec
run_criteria/yes_using_resource/056_systems    1.00     53.5±3.12µs        ? ?/sec     1.15     61.4±4.17µs        ? ?/sec
run_criteria/yes_using_resource/061_systems    1.00     56.3±3.56µs        ? ?/sec     1.17     65.8±4.48µs        ? ?/sec
run_criteria/yes_using_resource/066_systems    1.00     61.1±5.00µs        ? ?/sec     1.13     68.9±5.05µs        ? ?/sec
run_criteria/yes_using_resource/071_systems    1.00     65.3±4.33µs        ? ?/sec     1.14     74.6±4.84µs        ? ?/sec
run_criteria/yes_using_resource/076_systems    1.00     68.5±6.05µs        ? ?/sec     1.15     78.6±5.62µs        ? ?/sec
run_criteria/yes_using_resource/081_systems    1.00     72.2±5.69µs        ? ?/sec     1.13     81.5±7.13µs        ? ?/sec
run_criteria/yes_using_resource/086_systems    1.00     78.0±7.45µs        ? ?/sec     1.09     85.2±5.81µs        ? ?/sec
run_criteria/yes_using_resource/091_systems    1.00     82.4±7.19µs        ? ?/sec     1.08     88.7±7.64µs        ? ?/sec
run_criteria/yes_using_resource/096_systems    1.00     83.8±6.00µs        ? ?/sec     1.12     93.7±7.67µs        ? ?/sec
run_criteria/yes_using_resource/101_systems    1.00     85.7±7.06µs        ? ?/sec     1.13     96.4±6.65µs        ? ?/sec
run_criteria/yes_with_labels/001_systems       1.02      6.1±0.19µs        ? ?/sec     1.00      5.9±0.19µs        ? ?/sec
run_criteria/yes_with_labels/006_systems       1.03     12.3±1.12µs        ? ?/sec     1.00     12.0±0.79µs        ? ?/sec
run_criteria/yes_with_labels/011_systems       1.00     18.0±1.69µs        ? ?/sec     1.00     17.9±0.80µs        ? ?/sec
run_criteria/yes_with_labels/016_systems       1.00     22.8±2.20µs        ? ?/sec     1.01     23.0±2.08µs        ? ?/sec
run_criteria/yes_with_labels/021_systems       1.03     28.4±2.58µs        ? ?/sec     1.00     27.6±2.31µs        ? ?/sec
run_criteria/yes_with_labels/026_systems       1.03     33.9±3.03µs        ? ?/sec     1.00     32.9±2.11µs        ? ?/sec
run_criteria/yes_with_labels/031_systems       1.01     38.3±2.77µs        ? ?/sec     1.00     37.8±2.73µs        ? ?/sec
run_criteria/yes_with_labels/036_systems       1.00     41.8±3.34µs        ? ?/sec     1.01     42.1±3.58µs        ? ?/sec
run_criteria/yes_with_labels/041_systems       1.03     47.5±3.70µs        ? ?/sec     1.00     46.0±4.75µs        ? ?/sec
run_criteria/yes_with_labels/046_systems       1.05     51.9±2.97µs        ? ?/sec     1.00     49.4±4.45µs        ? ?/sec
run_criteria/yes_with_labels/051_systems       1.04     55.7±3.09µs        ? ?/sec     1.00     53.8±3.56µs        ? ?/sec
run_criteria/yes_with_labels/056_systems       1.02     59.3±4.59µs        ? ?/sec     1.00     58.2±4.56µs        ? ?/sec
run_criteria/yes_with_labels/061_systems       1.04     66.7±4.32µs        ? ?/sec     1.00     63.9±3.59µs        ? ?/sec
run_criteria/yes_with_labels/066_systems       1.03     70.3±3.75µs        ? ?/sec     1.00     68.3±4.79µs        ? ?/sec
run_criteria/yes_with_labels/071_systems       1.04     74.8±5.41µs        ? ?/sec     1.00     71.9±5.33µs        ? ?/sec
run_criteria/yes_with_labels/076_systems       1.04     78.9±5.01µs        ? ?/sec     1.00     76.2±5.77µs        ? ?/sec
run_criteria/yes_with_labels/081_systems       1.02     81.0±6.19µs        ? ?/sec     1.00     79.4±4.71µs        ? ?/sec
run_criteria/yes_with_labels/086_systems       1.04     88.6±6.17µs        ? ?/sec     1.00     85.1±9.82µs        ? ?/sec
run_criteria/yes_with_labels/091_systems       1.05     92.4±5.56µs        ? ?/sec     1.00     87.9±6.32µs        ? ?/sec
run_criteria/yes_with_labels/096_systems       1.05     97.0±6.69µs        ? ?/sec     1.00     92.8±5.11µs        ? ?/sec
run_criteria/yes_with_labels/101_systems       1.05    101.2±5.17µs        ? ?/sec     1.00     96.6±4.62µs        ? ?/sec
schedule/base                                  1.27     37.2±2.11µs        ? ?/sec     1.00     29.3±2.00µs        ? ?/sec
simple_insert/base                             1.05   688.7±82.93µs        ? ?/sec     1.00   654.6±71.26µs        ? ?/sec
simple_insert/unbatched                        1.00  1462.4±104.01µs        ? ?/sec    1.00  1460.7±65.59µs        ? ?/sec
simple_iter/base                               1.00     13.7±0.08µs        ? ?/sec     1.00     13.6±0.08µs        ? ?/sec
simple_iter/foreach                            1.00     11.6±0.06µs        ? ?/sec     1.00     11.6±0.04µs        ? ?/sec
simple_iter/sparse                             1.00     57.9±5.04µs        ? ?/sec     1.06     61.6±0.36µs        ? ?/sec
simple_iter/sparse_foreach                     1.00     41.5±0.35µs        ? ?/sec     1.18     49.0±1.65µs        ? ?/sec
simple_iter/system                             1.02     13.9±0.18µs        ? ?/sec     1.00     13.7±0.08µs        ? ?/sec
sized_commands_0_bytes/2000_commands           1.00      5.0±0.06µs        ? ?/sec     1.12      5.7±0.02µs        ? ?/sec
sized_commands_0_bytes/4000_commands           1.00     10.2±0.04µs        ? ?/sec     1.09     11.2±0.07µs        ? ?/sec
sized_commands_0_bytes/6000_commands           1.00     15.2±0.13µs        ? ?/sec     1.11     16.9±0.06µs        ? ?/sec
sized_commands_0_bytes/8000_commands           1.00     20.2±0.14µs        ? ?/sec     1.11     22.4±0.14µs        ? ?/sec
sized_commands_12_bytes/2000_commands          1.00      7.1±0.16µs        ? ?/sec     1.04      7.4±0.05µs        ? ?/sec
sized_commands_12_bytes/4000_commands          1.00     14.1±0.16µs        ? ?/sec     1.08     15.2±0.34µs        ? ?/sec
sized_commands_12_bytes/6000_commands          1.00     21.0±0.13µs        ? ?/sec     1.07     22.5±0.28µs        ? ?/sec
sized_commands_12_bytes/8000_commands          1.00     27.8±0.15µs        ? ?/sec     1.08     30.0±0.18µs        ? ?/sec
sized_commands_512_bytes/2000_commands         1.01    165.0±4.14µs        ? ?/sec     1.00    164.2±5.12µs        ? ?/sec
sized_commands_512_bytes/4000_commands         1.00   335.9±21.58µs        ? ?/sec     1.00   334.6±22.46µs        ? ?/sec
sized_commands_512_bytes/6000_commands         1.00   514.5±58.10µs        ? ?/sec     1.00   513.0±57.24µs        ? ?/sec
sized_commands_512_bytes/8000_commands         1.01   683.7±62.13µs        ? ?/sec     1.00   678.5±64.51µs        ? ?/sec
sparse_fragmented_iter/base                    1.00     11.1±0.38ns        ? ?/sec     1.04     11.5±0.48ns        ? ?/sec
sparse_fragmented_iter/foreach                 1.00      8.7±0.25ns        ? ?/sec     1.04      9.0±0.83ns        ? ?/sec
spawn_commands/2000_entities                   1.00   251.9±20.22µs        ? ?/sec     1.02   256.9±23.80µs        ? ?/sec
spawn_commands/4000_entities                   1.00   502.2±35.57µs        ? ?/sec     1.00   502.8±24.65µs        ? ?/sec
spawn_commands/6000_entities                   1.00   718.3±53.10µs        ? ?/sec     1.03   741.3±47.20µs        ? ?/sec
spawn_commands/8000_entities                   1.00  948.0±109.70µs        ? ?/sec     1.02   969.1±64.47µs        ? ?/sec
world_entity/50000_entities                    1.00    421.6±0.49µs        ? ?/sec     1.01    424.0±0.93µs        ? ?/sec
world_get/50000_entities_sparse                1.00   432.3±27.71µs        ? ?/sec     1.27   550.0±22.41µs        ? ?/sec
world_get/50000_entities_table                 1.00    416.2±3.17µs        ? ?/sec     2.26    939.9±3.17µs        ? ?/sec
world_query_for_each/50000_entities_sparse     1.00     82.1±1.22µs        ? ?/sec     1.17     96.1±1.20µs        ? ?/sec
world_query_for_each/50000_entities_table      1.00     27.2±0.09µs        ? ?/sec     1.00     27.1±0.12µs        ? ?/sec
world_query_get/50000_entities_sparse          1.08   414.4±19.13µs        ? ?/sec     1.00    384.0±6.93µs        ? ?/sec
world_query_get/50000_entities_table           1.00    259.5±4.21µs        ? ?/sec     1.00    260.2±5.88µs        ? ?/sec
world_query_iter/50000_entities_sparse         1.00     96.1±3.49µs        ? ?/sec     1.01     96.9±1.47µs        ? ?/sec
world_query_iter/50000_entities_table          1.00     27.3±0.50µs        ? ?/sec     1.00     27.2±0.30µs        ? ?/sec

@superdump
Copy link
Contributor

I'll leave the interpretation to you but here are the results from an M1 Max:

group                                          aligned                                 main
-----                                          -------                                 ----
add_remove_component/sparse_set                1.00  1007.5±38.62µs        ? ?/sec     1.10  1104.6±43.27µs        ? ?/sec
add_remove_component/table                     1.00  1258.3±27.00µs        ? ?/sec     1.13  1427.3±22.79µs        ? ?/sec
add_remove_component_big/sparse_set            1.00  1072.9±50.16µs        ? ?/sec     1.11  1195.3±46.06µs        ? ?/sec
add_remove_component_big/table                 1.00      2.5±0.06ms        ? ?/sec     1.03      2.6±0.06ms        ? ?/sec
added_archetypes/archetype_count/100           1.00   292.3±34.63µs        ? ?/sec     1.07   312.3±73.09µs        ? ?/sec
added_archetypes/archetype_count/1000          1.00   840.3±48.63µs        ? ?/sec     1.01   848.9±50.60µs        ? ?/sec
added_archetypes/archetype_count/10000         1.01      8.3±0.32ms        ? ?/sec     1.00      8.3±0.27ms        ? ?/sec
added_archetypes/archetype_count/200           1.00   357.1±18.05µs        ? ?/sec     1.02   363.9±43.69µs        ? ?/sec
added_archetypes/archetype_count/2000          1.00  1544.1±251.74µs        ? ?/sec    1.02  1574.0±287.19µs        ? ?/sec
added_archetypes/archetype_count/500           1.06  575.6±221.62µs        ? ?/sec     1.00   543.3±37.72µs        ? ?/sec
added_archetypes/archetype_count/5000          1.00      3.9±0.31ms        ? ?/sec     1.00      3.9±0.28ms        ? ?/sec
busy_systems/01x_entities_03_systems           1.00     37.0±5.41µs        ? ?/sec     1.01     37.3±3.32µs        ? ?/sec
busy_systems/01x_entities_06_systems           1.00     67.1±5.23µs        ? ?/sec     1.00     67.2±3.54µs        ? ?/sec
busy_systems/01x_entities_09_systems           1.00    96.9±11.46µs        ? ?/sec     1.01     98.0±9.46µs        ? ?/sec
busy_systems/01x_entities_12_systems           1.01    126.1±3.21µs        ? ?/sec     1.00    125.2±6.71µs        ? ?/sec
busy_systems/01x_entities_15_systems           1.04   156.5±15.36µs        ? ?/sec     1.00    149.8±5.30µs        ? ?/sec
busy_systems/02x_entities_03_systems           1.00    67.6±10.80µs        ? ?/sec     1.03     69.5±1.99µs        ? ?/sec
busy_systems/02x_entities_06_systems           1.06   118.8±11.68µs        ? ?/sec     1.00    111.9±3.80µs        ? ?/sec
busy_systems/02x_entities_09_systems           1.02    174.7±8.44µs        ? ?/sec     1.00    171.7±3.80µs        ? ?/sec
busy_systems/02x_entities_12_systems           1.06   237.2±14.93µs        ? ?/sec     1.00    224.8±3.29µs        ? ?/sec
busy_systems/02x_entities_15_systems           1.03   292.8±24.55µs        ? ?/sec     1.00   283.6±10.38µs        ? ?/sec
busy_systems/03x_entities_03_systems           1.00     85.0±1.33µs        ? ?/sec     1.09     92.4±2.33µs        ? ?/sec
busy_systems/03x_entities_06_systems           1.00    182.2±4.41µs        ? ?/sec     1.03   188.5±24.86µs        ? ?/sec
busy_systems/03x_entities_09_systems           1.00    251.3±5.71µs        ? ?/sec     1.04    261.1±3.20µs        ? ?/sec
busy_systems/03x_entities_12_systems           1.02   351.6±12.88µs        ? ?/sec     1.00    343.9±5.20µs        ? ?/sec
busy_systems/03x_entities_15_systems           1.03   430.6±14.80µs        ? ?/sec     1.00    417.0±5.65µs        ? ?/sec
busy_systems/04x_entities_03_systems           1.00    125.9±8.88µs        ? ?/sec     1.06   133.3±10.87µs        ? ?/sec
busy_systems/04x_entities_06_systems           1.00    219.1±4.13µs        ? ?/sec     1.13   246.6±13.01µs        ? ?/sec
busy_systems/04x_entities_09_systems           1.10   361.2±13.16µs        ? ?/sec     1.00    327.6±4.94µs        ? ?/sec
busy_systems/04x_entities_12_systems           1.08    471.1±9.79µs        ? ?/sec     1.00    434.6±7.73µs        ? ?/sec
busy_systems/04x_entities_15_systems           1.06   587.0±71.45µs        ? ?/sec     1.00   553.2±14.84µs        ? ?/sec
busy_systems/05x_entities_03_systems           1.00    138.5±2.59µs        ? ?/sec     1.01    139.7±1.91µs        ? ?/sec
busy_systems/05x_entities_06_systems           1.00    287.2±7.76µs        ? ?/sec     1.08   310.7±18.55µs        ? ?/sec
busy_systems/05x_entities_09_systems           1.00   418.3±11.83µs        ? ?/sec     1.01    422.4±7.96µs        ? ?/sec
busy_systems/05x_entities_12_systems           1.00   578.9±21.63µs        ? ?/sec     1.00    578.7±7.70µs        ? ?/sec
busy_systems/05x_entities_15_systems           1.00   679.7±11.69µs        ? ?/sec     1.02   693.3±15.12µs        ? ?/sec
contrived/01x_entities_03_systems              1.00     20.3±1.40µs        ? ?/sec     1.10     22.3±3.19µs        ? ?/sec
contrived/01x_entities_06_systems              1.00     38.2±3.40µs        ? ?/sec     1.00     38.4±3.59µs        ? ?/sec
contrived/01x_entities_09_systems              1.00     53.4±3.20µs        ? ?/sec     1.00     53.3±4.14µs        ? ?/sec
contrived/01x_entities_12_systems              1.00     69.0±4.29µs        ? ?/sec     1.01    69.8±10.03µs        ? ?/sec
contrived/01x_entities_15_systems              1.00     85.9±7.62µs        ? ?/sec     1.00     85.7±8.21µs        ? ?/sec
contrived/02x_entities_03_systems              1.05     37.9±6.43µs        ? ?/sec     1.00     36.2±6.53µs        ? ?/sec
contrived/02x_entities_06_systems              1.10     71.0±8.96µs        ? ?/sec     1.00     64.5±7.43µs        ? ?/sec
contrived/02x_entities_09_systems              1.10     98.6±7.29µs        ? ?/sec     1.00     89.7±5.83µs        ? ?/sec
contrived/02x_entities_12_systems              1.05   125.5±21.84µs        ? ?/sec     1.00   119.9±13.54µs        ? ?/sec
contrived/02x_entities_15_systems              1.00   152.4±30.86µs        ? ?/sec     1.08   165.0±94.78µs        ? ?/sec
contrived/03x_entities_03_systems              1.07    57.4±13.04µs        ? ?/sec     1.00    53.6±16.11µs        ? ?/sec
contrived/03x_entities_06_systems              1.04    93.5±15.20µs        ? ?/sec     1.00     90.0±7.86µs        ? ?/sec
contrived/03x_entities_09_systems              1.02   127.2±14.99µs        ? ?/sec     1.00   124.9±10.03µs        ? ?/sec
contrived/03x_entities_12_systems              1.00    161.0±7.49µs        ? ?/sec     1.01    162.7±8.60µs        ? ?/sec
contrived/03x_entities_15_systems              1.01    194.9±6.90µs        ? ?/sec     1.00    193.3±5.54µs        ? ?/sec
contrived/04x_entities_03_systems              1.01     66.2±6.09µs        ? ?/sec     1.00     65.4±2.89µs        ? ?/sec
contrived/04x_entities_06_systems              1.02   112.5±10.83µs        ? ?/sec     1.00    110.3±5.86µs        ? ?/sec
contrived/04x_entities_09_systems              1.01   163.1±12.32µs        ? ?/sec     1.00   161.2±18.95µs        ? ?/sec
contrived/04x_entities_12_systems              1.00   210.3±85.94µs        ? ?/sec     1.02   213.6±38.73µs        ? ?/sec
contrived/04x_entities_15_systems              1.03   257.3±31.51µs        ? ?/sec     1.00   251.0±11.01µs        ? ?/sec
contrived/05x_entities_03_systems              1.01     81.4±4.12µs        ? ?/sec     1.00     80.6±2.23µs        ? ?/sec
contrived/05x_entities_06_systems              1.01   139.6±10.61µs        ? ?/sec     1.00   138.3±11.42µs        ? ?/sec
contrived/05x_entities_09_systems              1.01   200.5±17.91µs        ? ?/sec     1.00   197.7±15.28µs        ? ?/sec
contrived/05x_entities_12_systems              1.07   266.3±24.15µs        ? ?/sec     1.00   250.0±16.92µs        ? ?/sec
contrived/05x_entities_15_systems              1.07   326.4±27.86µs        ? ?/sec     1.00    304.1±6.58µs        ? ?/sec
empty_commands/0_entities                      1.00      3.4±0.04ns        ? ?/sec     1.01      3.4±0.07ns        ? ?/sec
empty_systems/000_systems                      1.07      5.4±0.61µs        ? ?/sec     1.00      5.0±0.59µs        ? ?/sec
empty_systems/001_systems                      1.00      3.1±0.72µs        ? ?/sec     1.14      3.5±1.34µs        ? ?/sec
empty_systems/002_systems                      1.04      4.9±4.39µs        ? ?/sec     1.00      4.7±1.54µs        ? ?/sec
empty_systems/003_systems                      1.02      6.8±1.91µs        ? ?/sec     1.00      6.7±1.56µs        ? ?/sec
empty_systems/004_systems                      1.00      8.0±1.89µs        ? ?/sec     1.06      8.5±2.31µs        ? ?/sec
empty_systems/005_systems                      1.20     10.4±2.97µs        ? ?/sec     1.00      8.7±1.88µs        ? ?/sec
empty_systems/010_systems                      1.23     17.0±3.78µs        ? ?/sec     1.00     13.8±2.30µs        ? ?/sec
empty_systems/015_systems                      1.13     21.7±2.67µs        ? ?/sec     1.00     19.2±4.36µs        ? ?/sec
empty_systems/020_systems                      1.09     28.1±4.41µs        ? ?/sec     1.00     25.8±3.97µs        ? ?/sec
empty_systems/025_systems                      1.04     29.9±6.29µs        ? ?/sec     1.00     28.8±3.54µs        ? ?/sec
empty_systems/030_systems                      1.00     32.0±4.94µs        ? ?/sec     1.07     34.4±3.87µs        ? ?/sec
empty_systems/035_systems                      1.00     36.3±3.76µs        ? ?/sec     1.10     40.0±5.31µs        ? ?/sec
empty_systems/040_systems                      1.12     52.1±9.97µs        ? ?/sec     1.00    46.6±10.97µs        ? ?/sec
empty_systems/045_systems                      1.19    61.3±19.61µs        ? ?/sec     1.00    51.7±12.64µs        ? ?/sec
empty_systems/050_systems                      1.00    57.7±13.40µs        ? ?/sec     1.02     59.0±8.16µs        ? ?/sec
empty_systems/055_systems                      1.02    63.8±20.09µs        ? ?/sec     1.00     62.4±6.47µs        ? ?/sec
empty_systems/060_systems                      1.00     66.9±9.18µs        ? ?/sec     1.14    76.1±17.87µs        ? ?/sec
empty_systems/065_systems                      1.00     68.1±6.48µs        ? ?/sec     1.04     71.2±6.59µs        ? ?/sec
empty_systems/070_systems                      1.00    78.7±18.17µs        ? ?/sec     1.05    82.9±30.36µs        ? ?/sec
empty_systems/075_systems                      1.00     79.6±8.96µs        ? ?/sec     1.05    83.9±22.34µs        ? ?/sec
empty_systems/080_systems                      1.03    95.7±25.95µs        ? ?/sec     1.00    92.8±36.95µs        ? ?/sec
empty_systems/085_systems                      1.00    87.4±14.42µs        ? ?/sec     1.14    99.4±48.06µs        ? ?/sec
empty_systems/090_systems                      1.00    88.8±14.99µs        ? ?/sec     1.00     88.5±9.06µs        ? ?/sec
empty_systems/095_systems                      1.00     89.4±9.81µs        ? ?/sec     1.02    91.3±10.29µs        ? ?/sec
empty_systems/100_systems                      1.00    97.1±17.88µs        ? ?/sec     1.03    99.8±14.54µs        ? ?/sec
fake_commands/2000_commands                    1.00      5.4±0.08µs        ? ?/sec     1.00      5.4±0.08µs        ? ?/sec
fake_commands/4000_commands                    1.00     10.7±0.15µs        ? ?/sec     1.00     10.7±0.11µs        ? ?/sec
fake_commands/6000_commands                    1.00     16.1±0.19µs        ? ?/sec     1.00     16.1±0.21µs        ? ?/sec
fake_commands/8000_commands                    1.00     21.5±0.27µs        ? ?/sec     1.00     21.5±0.26µs        ? ?/sec
for_each_iter                                  1.00    214.9±0.54ms        ? ?/sec     1.00    215.1±0.55ms        ? ?/sec
for_each_par_iter/threads/1                    1.00   141.7±23.20ms        ? ?/sec     1.00   142.1±22.88ms        ? ?/sec
for_each_par_iter/threads/16                   1.03     28.1±1.56ms        ? ?/sec     1.00     27.3±0.95ms        ? ?/sec
for_each_par_iter/threads/2                    1.00     89.3±6.07ms        ? ?/sec     1.00     89.8±5.18ms        ? ?/sec
for_each_par_iter/threads/32                   1.03     28.0±2.51ms        ? ?/sec     1.00     27.3±0.99ms        ? ?/sec
for_each_par_iter/threads/4                    1.00     54.1±0.89ms        ? ?/sec     1.00     54.0±0.80ms        ? ?/sec
for_each_par_iter/threads/8                    1.00     30.7±0.67ms        ? ?/sec     1.00     30.7±0.51ms        ? ?/sec
fragmented_iter/base                           1.02   513.5±38.25ns        ? ?/sec     1.00   502.6±12.24ns        ? ?/sec
fragmented_iter/foreach                        1.01    189.7±5.69ns        ? ?/sec     1.00    187.7±5.32ns        ? ?/sec
get_component/base                             1.00    765.3±8.50µs        ? ?/sec     1.01   770.8±10.40µs        ? ?/sec
get_component/system                           1.02   620.3±10.13µs        ? ?/sec     1.00    608.7±7.91µs        ? ?/sec
get_or_spawn/batched                           1.00    259.5±7.81µs        ? ?/sec     1.00   259.6±11.43µs        ? ?/sec
get_or_spawn/individual                        1.00   635.7±35.42µs        ? ?/sec     1.09   691.8±33.28µs        ? ?/sec
heavy_compute/base                             1.00   541.4±32.06µs        ? ?/sec     1.01   548.1±61.99µs        ? ?/sec
insert_commands/insert                         1.00   572.3±31.32µs        ? ?/sec     1.07   614.5±29.22µs        ? ?/sec
insert_commands/insert_batch                   1.00   257.6±11.06µs        ? ?/sec     1.02    262.7±9.74µs        ? ?/sec
many_maps_iter                                 1.00    187.3±1.40ms        ? ?/sec     1.00    187.1±0.63ms        ? ?/sec
many_maps_par_iter/threads/1                   1.01   123.6±19.26ms        ? ?/sec     1.00   122.0±19.19ms        ? ?/sec
many_maps_par_iter/threads/16                  1.02     25.1±0.85ms        ? ?/sec     1.00     24.7±1.00ms        ? ?/sec
many_maps_par_iter/threads/2                   1.00     78.3±4.76ms        ? ?/sec     1.00     78.6±4.99ms        ? ?/sec
many_maps_par_iter/threads/32                  1.01     25.0±0.91ms        ? ?/sec     1.00     24.7±0.95ms        ? ?/sec
many_maps_par_iter/threads/4                   1.00     47.2±0.52ms        ? ?/sec     1.00     47.0±0.55ms        ? ?/sec
many_maps_par_iter/threads/8                   1.00     27.1±0.51ms        ? ?/sec     1.00     27.2±0.57ms        ? ?/sec
no_archetypes/system_count/0                   1.00      4.7±0.17µs        ? ?/sec     1.03      4.9±0.47µs        ? ?/sec
no_archetypes/system_count/100                 1.00     92.2±9.21µs        ? ?/sec     1.00     91.8±9.21µs        ? ?/sec
no_archetypes/system_count/20                  1.00     23.1±2.22µs        ? ?/sec     1.00     23.2±2.15µs        ? ?/sec
no_archetypes/system_count/40                  1.04     45.3±7.71µs        ? ?/sec     1.00     43.6±3.76µs        ? ?/sec
no_archetypes/system_count/60                  1.00     64.4±8.98µs        ? ?/sec     1.01     65.3±5.73µs        ? ?/sec
no_archetypes/system_count/80                  1.07    82.9±55.70µs        ? ?/sec     1.00     77.6±4.04µs        ? ?/sec
overhead_par_iter/threads/1                    1.00     33.7±0.85µs        ? ?/sec     1.00     33.7±3.47µs        ? ?/sec
overhead_par_iter/threads/16                   1.02     56.5±6.59µs        ? ?/sec     1.00     55.2±5.90µs        ? ?/sec
overhead_par_iter/threads/2                    1.07    54.4±10.29µs        ? ?/sec     1.00     50.9±3.96µs        ? ?/sec
overhead_par_iter/threads/32                   1.03     57.7±8.95µs        ? ?/sec     1.00     56.3±7.46µs        ? ?/sec
overhead_par_iter/threads/4                    1.04     53.2±4.52µs        ? ?/sec     1.00     51.2±4.68µs        ? ?/sec
overhead_par_iter/threads/8                    1.02     55.1±6.12µs        ? ?/sec     1.00     54.1±7.15µs        ? ?/sec
query_get/50000_entities_sparse                1.11   454.9±17.72µs        ? ?/sec     1.00   409.5±11.07µs        ? ?/sec
query_get/50000_entities_table                 1.11    385.4±7.61µs        ? ?/sec     1.00    346.1±6.03µs        ? ?/sec
query_get_component/50000_entities_sparse      1.00   597.7±18.05µs        ? ?/sec     1.00   597.0±13.82µs        ? ?/sec
query_get_component/50000_entities_table       1.00   591.6±13.28µs        ? ?/sec     1.00   589.9±12.05µs        ? ?/sec
run_criteria/no/001_systems                    1.01      5.0±0.42µs        ? ?/sec     1.00      4.9±0.42µs        ? ?/sec
run_criteria/no/006_systems                    1.00      4.9±0.33µs        ? ?/sec     1.01      5.0±0.36µs        ? ?/sec
run_criteria/no/011_systems                    1.00      5.0±0.34µs        ? ?/sec     1.00      5.0±0.22µs        ? ?/sec
run_criteria/no/016_systems                    1.00      5.2±0.46µs        ? ?/sec     1.01      5.3±0.39µs        ? ?/sec
run_criteria/no/021_systems                    1.00      5.2±0.19µs        ? ?/sec     1.10      5.7±1.33µs        ? ?/sec
run_criteria/no/026_systems                    1.00      5.4±0.39µs        ? ?/sec     1.00      5.4±0.40µs        ? ?/sec
run_criteria/no/031_systems                    1.00      5.5±0.46µs        ? ?/sec     1.00      5.5±0.36µs        ? ?/sec
run_criteria/no/036_systems                    1.00      5.6±0.29µs        ? ?/sec     1.02      5.7±0.38µs        ? ?/sec
run_criteria/no/041_systems                    1.00      5.7±0.22µs        ? ?/sec     1.01      5.8±0.43µs        ? ?/sec
run_criteria/no/046_systems                    1.01      6.0±0.57µs        ? ?/sec     1.00      5.9±0.52µs        ? ?/sec
run_criteria/no/051_systems                    1.01      6.0±0.44µs        ? ?/sec     1.00      6.0±0.42µs        ? ?/sec
run_criteria/no/056_systems                    1.00      6.2±0.37µs        ? ?/sec     1.00      6.2±0.59µs        ? ?/sec
run_criteria/no/061_systems                    1.00      6.1±0.25µs        ? ?/sec     1.01      6.2±0.21µs        ? ?/sec
run_criteria/no/066_systems                    1.00      6.2±0.20µs        ? ?/sec     1.00      6.2±0.23µs        ? ?/sec
run_criteria/no/071_systems                    1.01      6.6±1.11µs        ? ?/sec     1.00      6.5±0.95µs        ? ?/sec
run_criteria/no/076_systems                    1.01      6.6±0.51µs        ? ?/sec     1.00      6.6±0.50µs        ? ?/sec
run_criteria/no/081_systems                    1.00      6.7±0.46µs        ? ?/sec     1.00      6.8±0.63µs        ? ?/sec
run_criteria/no/086_systems                    1.09      7.3±2.37µs        ? ?/sec     1.00      6.7±0.19µs        ? ?/sec
run_criteria/no/091_systems                    1.01      6.8±0.26µs        ? ?/sec     1.00      6.8±0.35µs        ? ?/sec
run_criteria/no/096_systems                    1.00      7.0±0.46µs        ? ?/sec     1.04      7.3±0.93µs        ? ?/sec
run_criteria/no/101_systems                    1.01      7.2±0.55µs        ? ?/sec     1.00      7.1±0.49µs        ? ?/sec
run_criteria/no_with_labels/001_systems        1.00      4.9±0.26µs        ? ?/sec     1.02      5.0±0.51µs        ? ?/sec
run_criteria/no_with_labels/006_systems        1.01      4.9±0.19µs        ? ?/sec     1.00      4.9±0.18µs        ? ?/sec
run_criteria/no_with_labels/011_systems        1.00      5.0±0.38µs        ? ?/sec     1.03      5.2±0.64µs        ? ?/sec
run_criteria/no_with_labels/016_systems        1.00      5.1±0.35µs        ? ?/sec     1.00      5.1±0.41µs        ? ?/sec
run_criteria/no_with_labels/021_systems        1.03      5.3±0.41µs        ? ?/sec     1.00      5.1±0.37µs        ? ?/sec
run_criteria/no_with_labels/026_systems        1.02      5.3±0.25µs        ? ?/sec     1.00      5.2±0.44µs        ? ?/sec
run_criteria/no_with_labels/031_systems        1.08      5.6±0.96µs        ? ?/sec     1.00      5.2±0.28µs        ? ?/sec
run_criteria/no_with_labels/036_systems        1.02      5.4±0.50µs        ? ?/sec     1.00      5.3±0.47µs        ? ?/sec
run_criteria/no_with_labels/041_systems        1.07      5.7±0.84µs        ? ?/sec     1.00      5.3±0.34µs        ? ?/sec
run_criteria/no_with_labels/046_systems        1.04      5.6±0.35µs        ? ?/sec     1.00      5.4±0.38µs        ? ?/sec
run_criteria/no_with_labels/051_systems        1.05      5.7±0.36µs        ? ?/sec     1.00      5.5±0.30µs        ? ?/sec
run_criteria/no_with_labels/056_systems        1.03      5.7±0.68µs        ? ?/sec     1.00      5.6±0.18µs        ? ?/sec
run_criteria/no_with_labels/061_systems        1.11      6.3±0.37µs        ? ?/sec     1.00      5.7±0.39µs        ? ?/sec
run_criteria/no_with_labels/066_systems        1.05      6.2±0.41µs        ? ?/sec     1.00      6.0±0.83µs        ? ?/sec
run_criteria/no_with_labels/071_systems        1.05      6.0±0.92µs        ? ?/sec     1.00      5.7±0.20µs        ? ?/sec
run_criteria/no_with_labels/076_systems        1.06      6.2±0.44µs        ? ?/sec     1.00      5.8±0.27µs        ? ?/sec
run_criteria/no_with_labels/081_systems        1.06      6.3±0.55µs        ? ?/sec     1.00      6.0±0.57µs        ? ?/sec
run_criteria/no_with_labels/086_systems        1.20      7.2±0.50µs        ? ?/sec     1.00      6.0±0.45µs        ? ?/sec
run_criteria/no_with_labels/091_systems        1.01      6.1±0.24µs        ? ?/sec     1.00      6.0±0.42µs        ? ?/sec
run_criteria/no_with_labels/096_systems        1.02      6.3±0.45µs        ? ?/sec     1.00      6.2±0.75µs        ? ?/sec
run_criteria/no_with_labels/101_systems        1.04      6.4±0.36µs        ? ?/sec     1.00      6.2±0.24µs        ? ?/sec
run_criteria/yes/001_systems                   1.00      2.9±0.35µs        ? ?/sec     1.14      3.3±2.52µs        ? ?/sec
run_criteria/yes/006_systems                   1.00      9.2±1.53µs        ? ?/sec     1.01      9.3±1.28µs        ? ?/sec
run_criteria/yes/011_systems                   1.00     14.3±2.08µs        ? ?/sec     1.04     14.8±6.44µs        ? ?/sec
run_criteria/yes/016_systems                   1.09     20.8±5.31µs        ? ?/sec     1.00     19.0±2.89µs        ? ?/sec
run_criteria/yes/021_systems                   1.08     27.0±7.78µs        ? ?/sec     1.00     24.9±2.79µs        ? ?/sec
run_criteria/yes/026_systems                   1.00     29.0±5.50µs        ? ?/sec     1.01    29.2±10.21µs        ? ?/sec
run_criteria/yes/031_systems                   1.04    35.7±14.11µs        ? ?/sec     1.00     34.3±6.93µs        ? ?/sec
run_criteria/yes/036_systems                   1.04     39.7±6.36µs        ? ?/sec     1.00     38.3±4.72µs        ? ?/sec
run_criteria/yes/041_systems                   1.00     44.8±4.55µs        ? ?/sec     1.01     45.1±9.65µs        ? ?/sec
run_criteria/yes/046_systems                   1.00    52.4±10.66µs        ? ?/sec     1.04    54.3±10.68µs        ? ?/sec
run_criteria/yes/051_systems                   1.00     55.3±6.11µs        ? ?/sec     1.13    62.5±15.80µs        ? ?/sec
run_criteria/yes/056_systems                   1.02    63.9±14.68µs        ? ?/sec     1.00     62.6±8.87µs        ? ?/sec
run_criteria/yes/061_systems                   1.00     67.2±8.07µs        ? ?/sec     1.03    69.0±10.15µs        ? ?/sec
run_criteria/yes/066_systems                   1.01    72.3±15.39µs        ? ?/sec     1.00     71.6±9.99µs        ? ?/sec
run_criteria/yes/071_systems                   1.02     74.3±9.80µs        ? ?/sec     1.00     73.1±7.17µs        ? ?/sec
run_criteria/yes/076_systems                   1.00    76.8±11.85µs        ? ?/sec     1.03    79.1±14.22µs        ? ?/sec
run_criteria/yes/081_systems                   1.11    88.3±28.37µs        ? ?/sec     1.00    79.8±11.63µs        ? ?/sec
run_criteria/yes/086_systems                   1.00    82.6±11.33µs        ? ?/sec     1.00     82.2±9.73µs        ? ?/sec
run_criteria/yes/091_systems                   1.00    84.0±11.19µs        ? ?/sec     1.01    84.8±11.94µs        ? ?/sec
run_criteria/yes/096_systems                   1.00    88.3±16.54µs        ? ?/sec     1.00    88.7±13.24µs        ? ?/sec
run_criteria/yes/101_systems                   1.00    93.3±18.84µs        ? ?/sec     1.03    96.2±15.47µs        ? ?/sec
run_criteria/yes_using_query/001_systems       1.00      2.8±0.25µs        ? ?/sec     1.02      2.9±0.38µs        ? ?/sec
run_criteria/yes_using_query/006_systems       1.00      9.5±1.35µs        ? ?/sec     1.02      9.6±1.72µs        ? ?/sec
run_criteria/yes_using_query/011_systems       1.03     14.5±2.93µs        ? ?/sec     1.00     14.1±2.02µs        ? ?/sec
run_criteria/yes_using_query/016_systems       1.00     19.5±3.43µs        ? ?/sec     1.06     20.8±5.87µs        ? ?/sec
run_criteria/yes_using_query/021_systems       1.01     25.2±3.92µs        ? ?/sec     1.00     25.0±4.29µs        ? ?/sec
run_criteria/yes_using_query/026_systems       1.00     31.4±9.08µs        ? ?/sec     1.31    41.0±38.70µs        ? ?/sec
run_criteria/yes_using_query/031_systems       1.04     40.8±8.91µs        ? ?/sec     1.00    39.1±36.38µs        ? ?/sec
run_criteria/yes_using_query/036_systems       1.43    60.6±67.52µs        ? ?/sec     1.00    42.4±17.39µs        ? ?/sec
run_criteria/yes_using_query/041_systems       1.16     54.4±7.03µs        ? ?/sec     1.00     47.1±5.41µs        ? ?/sec
run_criteria/yes_using_query/046_systems       1.02     57.5±7.39µs        ? ?/sec     1.00    56.4±32.18µs        ? ?/sec
run_criteria/yes_using_query/051_systems       1.16    67.8±12.40µs        ? ?/sec     1.00    58.6±20.42µs        ? ?/sec
run_criteria/yes_using_query/056_systems       1.02     67.3±7.53µs        ? ?/sec     1.00    65.9±16.48µs        ? ?/sec
run_criteria/yes_using_query/061_systems       1.18    82.4±24.94µs        ? ?/sec     1.00     69.7±8.42µs        ? ?/sec
run_criteria/yes_using_query/066_systems       1.05     77.4±7.73µs        ? ?/sec     1.00    73.6±14.06µs        ? ?/sec
run_criteria/yes_using_query/071_systems       1.25    97.1±86.51µs        ? ?/sec     1.00     78.0±9.93µs        ? ?/sec
run_criteria/yes_using_query/076_systems       1.21    93.8±15.91µs        ? ?/sec     1.00     77.6±8.17µs        ? ?/sec
run_criteria/yes_using_query/081_systems       1.02    87.4±11.27µs        ? ?/sec     1.00    85.6±14.45µs        ? ?/sec
run_criteria/yes_using_query/086_systems       1.13    98.4±26.63µs        ? ?/sec     1.00    87.0±12.20µs        ? ?/sec
run_criteria/yes_using_query/091_systems       1.19   110.1±32.82µs        ? ?/sec     1.00    92.7±40.14µs        ? ?/sec
run_criteria/yes_using_query/096_systems       1.27   120.3±64.30µs        ? ?/sec     1.00    94.8±14.98µs        ? ?/sec
run_criteria/yes_using_query/101_systems       1.17   112.7±45.09µs        ? ?/sec     1.00    96.1±14.85µs        ? ?/sec
run_criteria/yes_using_resource/001_systems    1.11      3.1±0.43µs        ? ?/sec     1.00      2.8±0.30µs        ? ?/sec
run_criteria/yes_using_resource/006_systems    1.21     11.7±3.32µs        ? ?/sec     1.00      9.7±1.89µs        ? ?/sec
run_criteria/yes_using_resource/011_systems    1.00     15.0±2.32µs        ? ?/sec     1.02     15.3±3.94µs        ? ?/sec
run_criteria/yes_using_resource/016_systems    1.13     21.9±5.85µs        ? ?/sec     1.00     19.4±3.96µs        ? ?/sec
run_criteria/yes_using_resource/021_systems    1.06     26.7±4.98µs        ? ?/sec     1.00     25.2±8.13µs        ? ?/sec
run_criteria/yes_using_resource/026_systems    1.00     30.3±4.30µs        ? ?/sec     1.00     30.2±5.15µs        ? ?/sec
run_criteria/yes_using_resource/031_systems    1.36    45.6±29.35µs        ? ?/sec     1.00     33.6±5.24µs        ? ?/sec
run_criteria/yes_using_resource/036_systems    1.45    54.4±21.72µs        ? ?/sec     1.00     37.5±5.44µs        ? ?/sec
run_criteria/yes_using_resource/041_systems    1.32    59.2±25.79µs        ? ?/sec     1.00     44.7±3.85µs        ? ?/sec
run_criteria/yes_using_resource/046_systems    1.16    61.4±17.66µs        ? ?/sec     1.00     53.1±9.06µs        ? ?/sec
run_criteria/yes_using_resource/051_systems    1.07     66.4±9.72µs        ? ?/sec     1.00    61.9±16.90µs        ? ?/sec
run_criteria/yes_using_resource/056_systems    1.08     70.5±8.99µs        ? ?/sec     1.00    65.6±15.87µs        ? ?/sec
run_criteria/yes_using_resource/061_systems    1.19    81.2±25.44µs        ? ?/sec     1.00     68.5±8.77µs        ? ?/sec
run_criteria/yes_using_resource/066_systems    1.10    80.1±16.47µs        ? ?/sec     1.00    72.6±11.12µs        ? ?/sec
run_criteria/yes_using_resource/071_systems    1.03    80.5±23.06µs        ? ?/sec     1.00    77.9±17.39µs        ? ?/sec
run_criteria/yes_using_resource/076_systems    1.07    86.1±12.96µs        ? ?/sec     1.00     80.1±9.55µs        ? ?/sec
run_criteria/yes_using_resource/081_systems    1.23    99.5±20.09µs        ? ?/sec     1.00    80.8±17.22µs        ? ?/sec
run_criteria/yes_using_resource/086_systems    1.13   103.5±16.75µs        ? ?/sec     1.00    91.3±67.47µs        ? ?/sec
run_criteria/yes_using_resource/091_systems    1.01   100.6±14.75µs        ? ?/sec     1.00    99.2±31.59µs        ? ?/sec
run_criteria/yes_using_resource/096_systems    1.13   108.1±23.48µs        ? ?/sec     1.00    95.3±27.55µs        ? ?/sec
run_criteria/yes_using_resource/101_systems    1.11   118.4±48.82µs        ? ?/sec     1.00   106.8±19.41µs        ? ?/sec
run_criteria/yes_with_labels/001_systems       1.00      2.8±0.31µs        ? ?/sec     1.04      2.9±0.50µs        ? ?/sec
run_criteria/yes_with_labels/006_systems       1.00      9.7±1.42µs        ? ?/sec     1.01      9.8±1.96µs        ? ?/sec
run_criteria/yes_with_labels/011_systems       1.00     13.7±1.95µs        ? ?/sec     1.21    16.6±10.70µs        ? ?/sec
run_criteria/yes_with_labels/016_systems       1.00     20.7±7.52µs        ? ?/sec     1.03     21.3±5.09µs        ? ?/sec
run_criteria/yes_with_labels/021_systems       1.00     25.6±4.52µs        ? ?/sec     1.00     25.6±3.88µs        ? ?/sec
run_criteria/yes_with_labels/026_systems       1.00     29.4±4.95µs        ? ?/sec     1.02     30.0±4.94µs        ? ?/sec
run_criteria/yes_with_labels/031_systems       1.00     34.2±6.92µs        ? ?/sec     1.01     34.5±3.81µs        ? ?/sec
run_criteria/yes_with_labels/036_systems       1.00     38.7±8.78µs        ? ?/sec     1.08    41.9±11.39µs        ? ?/sec
run_criteria/yes_with_labels/041_systems       1.02    47.0±12.22µs        ? ?/sec     1.00     46.0±9.38µs        ? ?/sec
run_criteria/yes_with_labels/046_systems       1.00    52.0±12.05µs        ? ?/sec     1.05    54.7±11.50µs        ? ?/sec
run_criteria/yes_with_labels/051_systems       1.00     55.7±7.91µs        ? ?/sec     1.05     58.6±5.38µs        ? ?/sec
run_criteria/yes_with_labels/056_systems       1.00     63.7±5.54µs        ? ?/sec     1.00     63.6±8.21µs        ? ?/sec
run_criteria/yes_with_labels/061_systems       1.00    68.3±24.70µs        ? ?/sec     1.01    69.2±17.44µs        ? ?/sec
run_criteria/yes_with_labels/066_systems       1.00    75.6±14.00µs        ? ?/sec     1.00    76.0±22.63µs        ? ?/sec
run_criteria/yes_with_labels/071_systems       1.03    83.8±40.13µs        ? ?/sec     1.00    81.4±13.27µs        ? ?/sec
run_criteria/yes_with_labels/076_systems       1.00    78.0±10.83µs        ? ?/sec     1.07    83.7±14.37µs        ? ?/sec
run_criteria/yes_with_labels/081_systems       1.00    82.3±11.36µs        ? ?/sec     1.05    86.7±14.46µs        ? ?/sec
run_criteria/yes_with_labels/086_systems       1.11    90.9±21.38µs        ? ?/sec     1.00     82.0±9.73µs        ? ?/sec
run_criteria/yes_with_labels/091_systems       1.18   102.7±91.30µs        ? ?/sec     1.00    87.3±15.02µs        ? ?/sec
run_criteria/yes_with_labels/096_systems       1.01    98.0±15.52µs        ? ?/sec     1.00    96.6±13.00µs        ? ?/sec
run_criteria/yes_with_labels/101_systems       1.00   100.0±10.75µs        ? ?/sec     1.01   100.9±15.36µs        ? ?/sec
schedule/base                                  1.00     34.6±4.35µs        ? ?/sec     1.02     35.3±7.51µs        ? ?/sec
simple_insert/base                             1.00    369.5±7.87µs        ? ?/sec     1.00    371.2±7.30µs        ? ?/sec
simple_insert/unbatched                        1.00   960.7±46.45µs        ? ?/sec     1.02   978.8±53.10µs        ? ?/sec
simple_iter/base                               1.00     12.7±0.18µs        ? ?/sec     1.00     12.7±0.17µs        ? ?/sec
simple_iter/foreach                            1.00      7.4±0.13µs        ? ?/sec     1.01      7.4±0.14µs        ? ?/sec
simple_iter/sparse                             1.00     36.0±0.55µs        ? ?/sec     1.02     36.7±0.82µs        ? ?/sec
simple_iter/sparse_foreach                     1.00     32.2±1.26µs        ? ?/sec     1.16     37.2±1.94µs        ? ?/sec
simple_iter/system                             1.00     12.7±0.18µs        ? ?/sec     1.00     12.7±0.19µs        ? ?/sec
sized_commands_0_bytes/2000_commands           1.01      2.9±0.04µs        ? ?/sec     1.00      2.8±0.04µs        ? ?/sec
sized_commands_0_bytes/4000_commands           1.01      5.7±0.09µs        ? ?/sec     1.00      5.7±0.08µs        ? ?/sec
sized_commands_0_bytes/6000_commands           1.01      8.6±0.14µs        ? ?/sec     1.00      8.5±0.11µs        ? ?/sec
sized_commands_0_bytes/8000_commands           1.01     11.5±0.20µs        ? ?/sec     1.00     11.4±0.18µs        ? ?/sec
sized_commands_12_bytes/2000_commands          1.00      3.9±0.06µs        ? ?/sec     1.11      4.4±0.05µs        ? ?/sec
sized_commands_12_bytes/4000_commands          1.00      7.8±0.12µs        ? ?/sec     1.12      8.8±0.12µs        ? ?/sec
sized_commands_12_bytes/6000_commands          1.00     13.3±0.19µs        ? ?/sec     1.04     13.8±0.19µs        ? ?/sec
sized_commands_12_bytes/8000_commands          1.00     17.4±0.27µs        ? ?/sec     1.05     18.3±0.24µs        ? ?/sec
sized_commands_512_bytes/2000_commands         1.00     80.4±1.05µs        ? ?/sec     1.00     80.0±1.45µs        ? ?/sec
sized_commands_512_bytes/4000_commands         1.00    161.7±4.29µs        ? ?/sec     1.00    161.0±8.10µs        ? ?/sec
sized_commands_512_bytes/6000_commands         1.01    245.7±6.96µs        ? ?/sec     1.00   243.5±11.75µs        ? ?/sec
sized_commands_512_bytes/8000_commands         1.01   329.6±21.99µs        ? ?/sec     1.00   325.2±19.27µs        ? ?/sec
sparse_fragmented_iter/base                    1.11      8.7±0.14ns        ? ?/sec     1.00      7.8±0.12ns        ? ?/sec
sparse_fragmented_iter/foreach                 1.00      5.5±0.08ns        ? ?/sec     1.00      5.5±0.06ns        ? ?/sec
spawn_commands/2000_entities                   1.00    158.6±4.23µs        ? ?/sec     1.08    170.9±3.23µs        ? ?/sec
spawn_commands/4000_entities                   1.00    321.1±8.72µs        ? ?/sec     1.08    346.7±7.83µs        ? ?/sec
spawn_commands/6000_entities                   1.00   499.4±55.95µs        ? ?/sec     1.06   528.0±14.60µs        ? ?/sec
spawn_commands/8000_entities                   1.00   647.8±25.67µs        ? ?/sec     1.07   694.2±26.71µs        ? ?/sec
world_entity/50000_entities                    1.11    111.8±1.34µs        ? ?/sec     1.00    100.6±0.96µs        ? ?/sec
world_get/50000_entities_sparse                1.00    250.1±2.67µs        ? ?/sec     1.00    250.9±3.10µs        ? ?/sec
world_get/50000_entities_table                 1.03    281.8±4.32µs        ? ?/sec     1.00    272.3±2.11µs        ? ?/sec
world_query_for_each/50000_entities_sparse     1.00     67.1±0.86µs        ? ?/sec     1.00     67.2±0.75µs        ? ?/sec
world_query_for_each/50000_entities_table      1.01     15.9±0.26µs        ? ?/sec     1.00     15.7±0.19µs        ? ?/sec
world_query_get/50000_entities_sparse          1.06    333.0±5.70µs        ? ?/sec     1.00    313.1±5.19µs        ? ?/sec
world_query_get/50000_entities_table           1.08    322.5±4.96µs        ? ?/sec     1.00    298.7±3.76µs        ? ?/sec
world_query_iter/50000_entities_sparse         1.00     66.5±0.78µs        ? ?/sec     1.01     67.2±1.53µs        ? ?/sec
world_query_iter/50000_entities_table          1.00     21.7±0.26µs        ? ?/sec     1.00     21.6±0.27µs        ? ?/sec

@Weibye Weibye added the S-Adopt-Me The original PR author has no intent to complete this work. Pick me up! label Aug 10, 2022
@james7132
Copy link
Member Author

Closing in favor of #10558.

@james7132 james7132 closed this Nov 18, 2023
@james7132 james7132 deleted the aligned-entity branch November 18, 2023 20:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-ECS Entities, components, systems, and events C-Performance A change motivated by improving speed, memory usage or compile times S-Adopt-Me The original PR author has no intent to complete this work. Pick me up!
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Entity cmp::Eq improvement
6 participants