Internalize task distinction into TaskPool

Objective
Fixes #1907. IO and Async Compute threads are sitting idle even when the compute threads are at capacity. This results in poor thread utilization.
Solution
Move the distinction between compute, async compute, and IO threads out of userspace, and internalize the distinction into TaskPool. This creates three tiers of threads and tasks: one for each group. Higher priority tasks can run on lower priority threads, if and only if they're currently idle, but the lower priority threads will prioritize their specific workload over higher priority ones. Priority goes compute > io > async compute.
For example, heavy per-frame compute workload, async compute and IO otherwise sitting idle: compute tasks will be scheduled onto async compute and IO threads whenever idle. Any IO task that is awoken will take precedence over the compute tasks.
In another case, a heavy IO workload will schedule onto idle async compute threads, but will never use a compute thread. This prevents lower priority tasks from starving out higher priority tasks.
The priority scheme chosen assumes well-behaved scheduling that adheres to the following principles:

Compute tasks are latency sensitive and generally do not hold the thread indefinitely or at the very minimum for time longer than the course of a frame.
IO tasks are not CPU intensive and will do minimal processing. Generally will yield readily at any incoming or outbound communication, and thus will only generally be under consistent heavy load only in specific circumstances.
Async compute tasks may run for a very long time, across multiple frames, and will generally not yield at any point during a given task's execution. Only under heavy load when a developer explicitly needs it, and can otherwise be used for IO or compute in the general case.

TODO:

[x] Add two additional executors to TaskPool
[x] Set up TaskPool threads to run tasks from all 3 with some prioritization
[x] Add user-facing APIs for choosing which priority to spawn tasks under.
[x] Remove the usages newtypes. Fix up dependent code.
[x] Properly set up individual thread groups and their individual prioritization schemes.
[x] Update docs.

Changelog
Changed: Newtypes of TaskPool (ComputeTaskPool, AsyncComputeTaskPool, and IoTaskPool) have been replaced with TaskPool::spawn_as with the appropriate TaskGroup. Thread utilization across these segments has been generally been increased via internal task prioritization. For convenience, TaskPool::spawn will always spawn on the compute task group.
Migration Guide
ComputeTaskPool, AsyncComputeTaskPool, and IoTaskPool have been removed. These individual TaskPools have been merged together, and can be accessed by Res<TaskPool>. To spawn a task on a specific segment of the threads, use TaskPool::spawn_as with the appropriate TaskGroup.
Before:
fn system(task_pool: Res<AsyncComputeTaskPool>) {
   task_pool.spawn(async {
       ...
   });
}

After:
fn system(task_pool: Res<TaskPool>) {
   task_pool.spawn(TaskGroup::AsyncCompute, async {
       ...
   });
}

I had a slightly different idea on how to combine the task pools. I wanted to give tasks spawned on a scope the highest priority; give tasks spawned onto the task pool a lower priority; and then add a new spawn_blocking function that works like it does in tokio where these tasks are spawned onto a different set of threads. It reuses an idle thread if there are any or spawns a new thread when there aren't any.

I had a slightly different idea on how to combine the task pools. I wanted to give tasks spawned on a scope the highest priority; give tasks spawned onto the task pool a lower priority; and then add a new spawn_blocking function that works like it does in tokio where these tasks are spawned onto a different set of threads. It reuses an idle thread if there are any or spawns a new thread when there aren't any.

I think the first two parts are still reconcilable with the current proposed approach; however, the problem with  spawn_blocking as a general approach is that if a compute thread is idle, you can easily starve out the compute tasks, which is unacceptable in a game engine.

however, the problem with spawn_blocking as a general approach is that if a compute thread is idle, you can easily starve out the compute tasks, which is unacceptable in a game engine.

isn't that a problem with this approach too. If a user starts too many blocking tasks the compute task pool won't have any threads to work with either.

however, the problem with spawn_blocking as a general approach is that if a compute thread is idle, you can easily starve out the compute tasks, which is unacceptable in a game engine.

isn't that a problem with this approach too. If a user starts too many blocking tasks the compute task pool won't have any threads to work with either.

If and only if they start it as a normal compute task, something that would require spawn_blocking should be scheduled to the async compute segment, where under this approach, it'll be delayed until the thread(s) are available.

bors try

I just want to say, I am very happy to see this and I think this is the right direction for Bevy.
Using all threads, with internal prioritizing logic for different kinds of tasks, has always seemed like the optimal way to do this. Honestly I was quite surprised when I first learned that Bevy just reserves threads for different task kinds and lets them sit idle when there are no workloads of their kind.
Further, this seems like it would be laying some important groundwork. It should become easier to add more different task classes with different prioritization or scheduling, should we need to do that later.
One example I could think of: we could add a new compute class for the render sub-app tasks. It would make sense, when "actual pipelining" is enabled, to have the render tasks from the previous frame run with higher priority than the compute tasks from the main app update.

This recent change should fix it, though it also doesn't allow for proper prioritization either. It's running the tasks from higher priority task groups, but sometimes it just sits idle. For this to work, we may need to move the distinction into the executor itself.

The extra overhead is likely because we're currently using tick over run, which has additional initialization costs that are persisted inside run. We likely cannot address that, at least not within the scope of this PR, and without ripping open/forking async_executor itself.

As discussed on Discord, the performance overhead is likely coming from the fact that executor.tick and executor.run are using different queuing methods, and using executor.run in a chain results in poor results as it internally does 200 checks in a loop before yielding, adding extra overhead when checked. To fix this, we'd need to embed async_executor's code in bevy_tasks and patch it ourselves, or try to upstream the change (probably unlikely at this point). However ,this is ~800 LoC, which would add quite a bit to an already mid-to-large sized PR, and requires more extensive performance testing to validate. It's probably best to defer this to a followup PR, as the increase in thread utilization still nets us a win here.
As a second followup, we should definitely test integrating in CPU affinity assignments for the threads spawned on platforms that support it (Windows / Linux), as this might ensure that we're utilizing all of the hardware.

However ,this is ~800 LoC, which would add quite a bit to an already mid-to-large sized PR, and requires more extensive performance testing to validate. It's probably best to defer this to a followup PR, as the increase in thread utilization still nets us a win here.

I think if we can prove that we can regain performance for per-system overhead, I'd be more cool with merging this as-is. Otherwise I'd be a bit worried about backing ourselves into a corner. The wins here definitely exist for simple apps, but for apps with many systems im worried this would be a regression.
How hard would it be to locally "hack in" the changes you have in mind with a forked async_executor crate (ex: maybe reducing the number of checks)? I agree that we shouldn't throw those into this PR, but it would be good to know if we're on the right track.

The thread distribution definitely looks to be fixed. This does make it much more pressing that we make these pools global if it's this simple to disrupt the task distribution. Here are my median stage timings for 3d_scene with this change.

main
pr

First
637.25us
637.16us

LoadAssets
288.87us
282.71us

PreUpdate
149.25us
147.9us

Update
55.2.us
61.5us

PostUpdate
419.us
437.us

AssetEvents
248.71us
246.18us

Last
36.09us
36.65us

Extract
498.76us
488.01.us

Prepare
337.93us
332.58us

Queue
207.61us
206.12us

Sort
114.99us
117.5us

Render
3.4ms
3.39ms

Cleanup
60.68us
60.42us

full frame
6.72ms
6.73ms

What isn't shown in these immediate numbers is a shift in distribution. For example, while it looks like Update regressed here, it does seem like the PR is causing the stage to be more well behaved in terms of runtime: the timings are no longer bimodal.

Overall it does seem like reverting the change to the scope does seem to fix a lot of the overhead mentioned above, though 3d_scene definitely does not push my computer hard enough to use all of the threads in the TaskPool. @cart can you check if this fixes the additional overhead?

One thing I did realize is that if we're just trying to understand differences in the executors, we should be allocating all the threads to compute when testing main. i.e.
        .insert_resource(DefaultTaskPoolOptions {
            max_total_threads: 12,
            io: TaskPoolThreadAssignmentPolicy {
                min_threads: 0,
                max_threads: 0,
                percent: 0.0,
            },
            async_compute: TaskPoolThreadAssignmentPolicy {
                min_threads: 0,
                max_threads: 0,
                percent: 0.0,
            },
            ..default()
        })
}

My numbers with this change:

main
pr

First
991.82us
988.69us

LoadAssets
471.41us
468.11us

PreUpdate
247.79us
242.27us

Update
106.69us
104.89us

PostUpdate
741.28us
722.67us

AssetEvents
445.03us
441.86us

Last
44.68us
44.15us

Extract
878us
919.98us

Prepare
577.4us
556.43us

Queue
363.28us
356.1us

Sort
206.28us
217.78us

Render
913.87us
894.09us

Cleanup
82.77us
82.14us

full frame
6.72ms
6.63ms

I definitely think that contention is part of the story, but there's a lot of moving parts and it's hard to quantify exactly how much of the story it is. We also have switching from run to tick in the thread executors and extra complexity for the executor in the i/o and async compute threads. Also the OS giving and taking away time to our threads causing context switching is part of the story too.
We see some of this in prepare_systems. Below is the histogram comparing main (red) with this pr (yellow) when it was still using tick. My guess here is that using run in the executor causes more contention on the global task pool than tick does, so calling spawn is slightly slower.

I also made this table, but haven't figured out anything too meaningful from it yet. It uses the older version of this PR that uses tick instead of try_tick in the scope executor. I allocated all threads to compute in both branches on this table.

It does make it clear there is some overhead on the tick design that is not related to the number of threads. The lower system count stages are slower by a value that doesn't vary with the number of threads.
I think my next step is to try and add a bunch of spans in bevy_tasks and see if I can see things taking longer on contention issues.

@hymm @cart I've successfully forked async_executor and augmented it to internally keep track of different priority task queues This likely has even better utilization (and potentially lower overhead) as it moves the prioritization into Future::poll instead of relying of future::or. It also utilizes Executor::run's capacity to work-steal from the local queues from other threads.
One potential downside is that this workstealing can cause tasks to get "trapped" in lower priority threads, but due to the way that work stealing is done (capping at twice the current length of any queue), this total time spent "trapped" is strictly bounded.

Noticed we could strip out all of the RwLocks in the implementation if we provided the executor full information about the thread distribution at initialization: something we can easily do. The core loop should be (mostly) lock free now beyond the sleepers.

made this link to see the changes on executor.rs https://github.com/james7132/bevy/compare/b5fc0d2..0e55d7e. I'll try to keep the commit hash up to date as other changes are made.

Added a number of optimizations:

Removed the local queue Arcs, and replaced them with a lifetimed borrow. Should avoid pointer chasing while workstealing and spawning tasks.
Split Sleepers into priority groups to ensure that a thread that can consume a newly scheduled task is awoken instead of some random one that may not be able to run it.
Embedded the fastrand RNG into the Runner to avoid a thread local lookup. Saves the initialization and atomic check there.
Attempt to directly enqueue a task into a local queue before falling back to the global queue.
Changed the assert while workstealing to a debug_assert to avoid the overhead when workstealing.

For additional consideration, if we make the TaskPools global, Drop will never be called. We can then remove the active slab from the state entirely, which should remove locking entirely from spawning tasks.

Taking a look now. Excited to see what you've been cooking up :)

Added a number of optimizations:

How certain are you that each of these changes are wins (or more importantly, not losses)?

Taking a look now. Excited to see what you've been cooking up :)

Added a number of optimizations:

How certain are you that each of these changes are wins (or more importantly, not losses)?

Pretty much all of these explicitly do less work. The only exception is probably the splitting of the sleepers. I'll test that soon.

Finished a first pass. The changes generally make sense to me / look pretty good. I'll give it one more pass soon. Very curious to see how this performs!
How do you want to handle this relative to #2250 in terms of merge order? Should we merge that first, incorporate the changes here and close out #2250, or close #2250 merge this PR and follow up with "globalization"?

IMO we should merge #2250 first. This particular change is pretty heavily involved, and while the merge conflicts are going to be bad in either direction, going #2250 first then this one is probably better given that the conflicts are mostly "external" to bevy_tasks.

bors try

I think these sound like great improvements and welcome them.
At the same time, I still feel like we’re limiting performance artificially based on an assumption of thread contention and operating systems being incapable of handling thread scheduling in sensible ways.
We are by default limiting io and async compute to 25% each of the logical threads and compute to the remaining threads, and in this PR in addition only allowing compute to schedule on the other threads, and io to schedule on async compute thus limiting it to only ever run on 50% of logical threads max, and async compute only ever being able to run on 25% logical threads max.
In my mind, all workloads should be able to be scheduled across all logical CPU threads and if some work is higher priority than others then we could try to use thread priorities to support operating system schedulers to do their job. Then all work types could expand to use all available resources if they are not used for something higher priority.
I think we should at least try this approach and try to break OS CPU schedulers before imposing artificial limits or assuming the infrastructure offered by operating systems does not meet our needs. Otherwise I feel we’re leaving performance on the table or adding complexity into bevy by implementing scheduling strategies that kernels already implement better.
What do you think?

In my mind, all workloads should be able to be scheduled across all logical CPU threads

This is a good strategy for non-timing sensitive work, but is likely to introduce painful latency in some places. In particular, I expect this strategy will be unacceptable for audio and input management. It is better to have wasted work than delays in some cases.
For workloads that aren't latency sensitive I tend to agree though. I'm not a fan of the strict divisions, and especially the upfront and relatively fixed allocation of different categories to e.g. ordinary systems vs async tasks.

I originally saw this as a fairly conservative step, where the goal is just to enable the parallel system executor and par_for_each to use all the threads that are allocated. With the forking of async-executor, I'm a lot less sure and more scrutiny is probably warranted.
Without thread priority, we already saw some issues with thread contention when testing this PR. Initially when this PR was made there was a problem where all threads were not able to be used at once. We eventually worked around it by using some different sub-executor designs in the threads and scope. Later it was found that the render sub world was creating it's own compute thread pool for it's use. When the fix for this was merged into main and this PR got rebased, we found out that we could revert the changes to the scope executor. Because of this I'm fairly certain that the issues we were seeing was OS contention between the two pools even though they aren't actually active at the same time.
This wasn't with thread prioritization though. I haven't done much with that. If we make i/o and async a lower priority is it possible for the compute threads to starve those out of cpu time? Do we even have thread prioritization on all the platforms we want to support? i.e. web.

Thread priority is only on specific platforms. I don't know of a web worker API for it.
Even then, thread priority is only really useful when you are already using 100% of the CPU and are overcommitted system wide.
As shown when we erroneously had an extra task pool around, having a non-1:1 correspondence between CPU cores and threads can have a negative impact on perf. An OS level thread context switch is expensive, and we should avoid it as much as possible.
That said, some of the initial benchmarks are showing significant overhead increases when comparing this PR to main. I'll investigate this further. I'm pretty confident one of the aforementioned changes is causing an improper task distribution.

Ran some benchmarks, the direct-to-local queue change definitely is hurting performance by adding more load when spawning or rescheduling tasks. I'll revert that. There are a few other serious regressions that need to be investigated, but overall it does seem like a lot of these optimizations have a pretty strong positive effect on scheduling overhead.

group                                                    main                                     no-direct-local-enqueue                  everything
-----                                                    ----                                     -----------------------                  -------------------------
added_archetypes/archetype_count/100                     7.22  1294.4±47.68µs        ? ?/sec      1.00   179.2±11.04µs        ? ?/sec      1.16    208.0±7.38µs        ? ?/sec
added_archetypes/archetype_count/1000                    2.77  1957.3±133.68µs        ? ?/sec     1.00   705.9±13.91µs        ? ?/sec      1.07   753.9±16.10µs        ? ?/sec
added_archetypes/archetype_count/10000                   1.46     17.1±1.46ms        ? ?/sec      1.00     11.7±1.34ms        ? ?/sec      1.26     14.8±2.18ms        ? ?/sec
added_archetypes/archetype_count/200                     6.02  1335.0±33.66µs        ? ?/sec      1.00   221.9±16.70µs        ? ?/sec      1.19    264.4±5.22µs        ? ?/sec
added_archetypes/archetype_count/2000                    2.93      4.1±0.21ms        ? ?/sec      1.00  1402.5±89.38µs        ? ?/sec      1.04  1453.8±54.38µs        ? ?/sec
added_archetypes/archetype_count/500                     3.97  1585.0±71.94µs        ? ?/sec      1.00   398.9±33.06µs        ? ?/sec      1.11    441.1±5.21µs        ? ?/sec
added_archetypes/archetype_count/5000                    1.96      8.6±0.98ms        ? ?/sec      1.00      4.4±0.83ms        ? ?/sec      1.15      5.1±0.59ms        ? ?/sec
busy_systems/01x_entities_03_systems                     1.06     40.4±2.52µs        ? ?/sec      1.00     38.2±2.52µs        ? ?/sec      1.34     51.3±1.93µs        ? ?/sec
busy_systems/01x_entities_06_systems                     1.02     79.0±3.66µs        ? ?/sec      1.00     77.7±4.21µs        ? ?/sec      1.10     85.2±2.92µs        ? ?/sec
busy_systems/01x_entities_09_systems                     1.09    125.5±6.04µs        ? ?/sec      1.00    115.0±5.01µs        ? ?/sec      1.05    120.9±4.08µs        ? ?/sec
busy_systems/01x_entities_12_systems                     1.06    153.4±7.77µs        ? ?/sec      1.00    144.9±6.95µs        ? ?/sec      1.08    156.4±5.02µs        ? ?/sec
busy_systems/01x_entities_15_systems                     1.03    187.9±6.60µs        ? ?/sec      1.00    182.8±7.40µs        ? ?/sec      1.04    190.3±4.55µs        ? ?/sec
busy_systems/02x_entities_03_systems                     1.04     74.4±3.74µs        ? ?/sec      1.00     71.5±4.78µs        ? ?/sec      1.17     83.6±5.76µs        ? ?/sec
busy_systems/02x_entities_06_systems                     1.05    140.7±8.57µs        ? ?/sec      1.00    133.8±3.92µs        ? ?/sec      1.07    143.0±5.44µs        ? ?/sec
busy_systems/02x_entities_09_systems                     1.08    217.6±8.97µs        ? ?/sec      1.00    201.8±9.69µs        ? ?/sec      1.00    201.3±9.36µs        ? ?/sec
busy_systems/02x_entities_12_systems                     1.09   278.7±11.11µs        ? ?/sec      1.00    254.7±9.64µs        ? ?/sec      1.06    270.4±8.19µs        ? ?/sec
busy_systems/02x_entities_15_systems                     1.08   340.7±20.27µs        ? ?/sec      1.00    314.8±9.30µs        ? ?/sec      1.03    323.5±8.86µs        ? ?/sec
busy_systems/03x_entities_03_systems                     1.04    105.7±6.43µs        ? ?/sec      1.00    101.8±5.46µs        ? ?/sec      1.16    117.5±8.69µs        ? ?/sec
busy_systems/03x_entities_06_systems                     1.15   224.8±13.17µs        ? ?/sec      1.00    195.1±8.31µs        ? ?/sec      1.03   201.2±13.03µs        ? ?/sec
busy_systems/03x_entities_09_systems                     1.19   327.2±13.83µs        ? ?/sec      1.00   275.5±12.01µs        ? ?/sec      1.07   296.1±14.27µs        ? ?/sec
busy_systems/03x_entities_12_systems                     1.11   420.3±15.97µs        ? ?/sec      1.00   377.0±12.34µs        ? ?/sec      1.02   384.9±13.41µs        ? ?/sec
busy_systems/03x_entities_15_systems                     1.04   484.9±18.26µs        ? ?/sec      1.00   466.2±11.85µs        ? ?/sec      1.01   470.6±14.36µs        ? ?/sec
busy_systems/04x_entities_03_systems                     1.00    135.7±8.19µs        ? ?/sec      1.02    138.5±8.24µs        ? ?/sec      1.18    160.4±8.21µs        ? ?/sec
busy_systems/04x_entities_06_systems                     1.16   294.1±11.13µs        ? ?/sec      1.00   254.1±10.97µs        ? ?/sec      1.04   264.7±14.56µs        ? ?/sec
busy_systems/04x_entities_09_systems                     1.18   434.4±19.06µs        ? ?/sec      1.00   367.2±15.86µs        ? ?/sec      1.04   380.0±12.43µs        ? ?/sec
busy_systems/04x_entities_12_systems                     1.10   537.1±31.11µs        ? ?/sec      1.00   488.5±18.12µs        ? ?/sec      1.01   494.5±19.86µs        ? ?/sec
busy_systems/04x_entities_15_systems                     1.03   625.7±30.09µs        ? ?/sec      1.00   605.2±29.97µs        ? ?/sec      1.01   611.5±24.34µs        ? ?/sec
busy_systems/05x_entities_03_systems                     1.12   176.1±12.71µs        ? ?/sec      1.00    157.4±9.27µs        ? ?/sec      1.24    194.5±7.62µs        ? ?/sec
busy_systems/05x_entities_06_systems                     1.13   352.2±26.54µs        ? ?/sec      1.00   312.6±13.32µs        ? ?/sec      1.08   339.0±17.41µs        ? ?/sec
busy_systems/05x_entities_09_systems                     1.21   547.8±22.79µs        ? ?/sec      1.00   452.9±19.42µs        ? ?/sec      1.09   492.3±15.36µs        ? ?/sec
busy_systems/05x_entities_12_systems                     1.08   683.8±48.92µs        ? ?/sec      1.00   633.6±27.79µs        ? ?/sec      1.04   658.0±54.59µs        ? ?/sec
busy_systems/05x_entities_15_systems                     1.12   867.3±42.16µs        ? ?/sec      1.00   771.6±42.43µs        ? ?/sec      1.05   813.5±35.68µs        ? ?/sec
empty_systems/000_systems                                1.18      2.6±0.16µs        ? ?/sec      1.08      2.4±0.22µs        ? ?/sec      1.00      2.2±0.17µs        ? ?/sec
empty_systems/001_systems                                1.00      4.3±0.37µs        ? ?/sec      1.01      4.4±0.21µs        ? ?/sec      1.87      8.1±0.20µs        ? ?/sec
empty_systems/002_systems                                1.00      5.8±0.15µs        ? ?/sec      1.07      6.2±0.33µs        ? ?/sec      1.62      9.4±0.21µs        ? ?/sec
empty_systems/003_systems                                1.00      7.2±0.22µs        ? ?/sec      1.02      7.3±0.26µs        ? ?/sec      1.45     10.5±0.51µs        ? ?/sec
empty_systems/004_systems                                1.00      8.2±0.33µs        ? ?/sec      1.00      8.2±0.33µs        ? ?/sec      1.45     12.0±0.60µs        ? ?/sec
empty_systems/005_systems                                1.00      9.1±0.35µs        ? ?/sec      1.04      9.4±0.46µs        ? ?/sec      1.41     12.8±0.48µs        ? ?/sec
empty_systems/010_systems                                1.00     13.8±0.67µs        ? ?/sec      1.06     14.7±0.50µs        ? ?/sec      1.41     19.5±0.67µs        ? ?/sec
empty_systems/015_systems                                1.00     19.3±1.23µs        ? ?/sec      1.05     20.2±0.81µs        ? ?/sec      1.33     25.5±0.67µs        ? ?/sec
empty_systems/020_systems                                1.01     25.1±1.17µs        ? ?/sec      1.00     24.8±0.90µs        ? ?/sec      1.26     31.1±0.91µs        ? ?/sec
empty_systems/025_systems                                1.00     28.6±1.05µs        ? ?/sec      1.04     29.6±1.00µs        ? ?/sec      1.30     37.2±0.93µs        ? ?/sec
empty_systems/030_systems                                1.00     33.6±1.15µs        ? ?/sec      1.07     35.8±1.32µs        ? ?/sec      1.29     43.3±1.31µs        ? ?/sec
empty_systems/035_systems                                1.00     39.1±1.45µs        ? ?/sec      1.01     39.7±1.55µs        ? ?/sec      1.29     50.5±0.84µs        ? ?/sec
empty_systems/040_systems                                1.00     43.4±1.68µs        ? ?/sec      1.06     46.1±1.87µs        ? ?/sec      1.26     54.8±1.30µs        ? ?/sec
empty_systems/045_systems                                1.00     47.3±2.25µs        ? ?/sec      1.06     50.0±1.47µs        ? ?/sec      1.28     60.4±1.50µs        ? ?/sec
empty_systems/050_systems                                1.00     52.1±2.34µs        ? ?/sec      1.05     54.7±1.64µs        ? ?/sec      1.27     66.1±1.51µs        ? ?/sec
empty_systems/055_systems                                1.00     57.2±2.15µs        ? ?/sec      1.07     61.1±1.78µs        ? ?/sec      1.28     73.1±1.27µs        ? ?/sec
empty_systems/060_systems                                1.00     60.6±1.82µs        ? ?/sec      1.10     66.4±1.85µs        ? ?/sec      1.30     78.6±1.48µs        ? ?/sec
empty_systems/065_systems                                1.00     64.1±2.33µs        ? ?/sec      1.09     70.2±2.06µs        ? ?/sec      1.31     84.0±2.00µs        ? ?/sec
empty_systems/070_systems                                1.00     70.9±2.74µs        ? ?/sec      1.05     74.8±3.12µs        ? ?/sec      1.28     90.8±1.70µs        ? ?/sec
empty_systems/075_systems                                1.00     75.8±2.61µs        ? ?/sec      1.05     79.6±3.15µs        ? ?/sec      1.28     96.8±2.72µs        ? ?/sec
empty_systems/080_systems                                1.00     79.0±3.53µs        ? ?/sec      1.08     85.2±3.84µs        ? ?/sec      1.31    103.6±2.65µs        ? ?/sec
empty_systems/085_systems                                1.00     84.5±2.59µs        ? ?/sec      1.08     91.7±3.68µs        ? ?/sec      1.29    109.0±2.57µs        ? ?/sec
empty_systems/090_systems                                1.00     87.8±3.49µs        ? ?/sec      1.10     96.8±4.54µs        ? ?/sec      1.30    113.9±3.05µs        ? ?/sec
empty_systems/095_systems                                1.00     95.0±3.56µs        ? ?/sec      1.07    101.3±4.52µs        ? ?/sec      1.29    122.4±3.83µs        ? ?/sec
empty_systems/100_systems                                1.00     99.4±4.07µs        ? ?/sec      1.06    105.7±4.38µs        ? ?/sec      1.28    127.6±2.71µs        ? ?/sec
for_each_iter                                            1.00     27.3±0.53ms        ? ?/sec      1.00     27.2±0.16ms        ? ?/sec      1.00     27.3±0.49ms        ? ?/sec
for_each_par_iter/threads/1                              2.00     34.9±2.70ms        ? ?/sec      1.00     17.5±0.78ms        ? ?/sec      3.13     54.6±1.03ms        ? ?/sec
for_each_par_iter/threads/16                             1.32      4.8±0.21ms        ? ?/sec      1.00      3.6±0.03ms        ? ?/sec      2.03      7.3±0.37ms        ? ?/sec
for_each_par_iter/threads/2                              1.20     21.0±0.71ms        ? ?/sec      1.00     17.4±0.29ms        ? ?/sec      3.12     54.5±0.62ms        ? ?/sec
for_each_par_iter/threads/32                             2.38      5.0±0.08ms        ? ?/sec      1.00      2.1±0.05ms        ? ?/sec      2.30      4.8±0.12ms        ? ?/sec
for_each_par_iter/threads/4                              1.27     13.1±0.89ms        ? ?/sec      1.00     10.3±0.25ms        ? ?/sec      2.65     27.3±0.46ms        ? ?/sec
for_each_par_iter/threads/8                              1.20      7.6±0.35ms        ? ?/sec      1.00      6.4±0.09ms        ? ?/sec      2.15     13.7±0.32ms        ? ?/sec
get_or_spawn/batched                                     1.04   417.2±45.14µs        ? ?/sec      1.00   400.2±41.83µs        ? ?/sec      1.02   406.4±43.40µs        ? ?/sec
get_or_spawn/individual                                  1.18  1073.5±90.85µs        ? ?/sec      1.00  911.5±102.24µs        ? ?/sec      1.02   925.3±71.82µs        ? ?/sec
heavy_compute/base                                       1.02    365.4±7.09µs        ? ?/sec      1.00    357.0±5.54µs        ? ?/sec      1.02    363.8±3.13µs        ? ?/sec
many_maps_iter                                           1.00     27.2±0.14ms        ? ?/sec      1.00     27.2±0.05ms        ? ?/sec      1.00     27.2±0.06ms        ? ?/sec
many_maps_par_iter/threads/1                             1.01     17.6±1.18ms        ? ?/sec      1.00     17.4±0.31ms        ? ?/sec      1.56     27.2±0.04ms        ? ?/sec
many_maps_par_iter/threads/16                            1.00      2.2±0.05ms        ? ?/sec      1.62      3.6±0.03ms        ? ?/sec      1.64      3.7±0.06ms        ? ?/sec
many_maps_par_iter/threads/2                             1.00     10.5±0.40ms        ? ?/sec      1.67     17.5±0.87ms        ? ?/sec      2.60     27.3±0.28ms        ? ?/sec
many_maps_par_iter/threads/32                            1.02      2.1±0.03ms        ? ?/sec      1.04      2.1±0.08ms        ? ?/sec      1.00      2.0±0.04ms        ? ?/sec
many_maps_par_iter/threads/4                             1.00      6.5±0.20ms        ? ?/sec      1.61     10.4±0.35ms        ? ?/sec      2.10     13.6±0.03ms        ? ?/sec
many_maps_par_iter/threads/8                             1.00      3.7±0.08ms        ? ?/sec      1.75      6.4±0.08ms        ? ?/sec      1.87      6.9±0.08ms        ? ?/sec
no_archetypes/system_count/0                             1.26  1523.0±314.34ns        ? ?/sec     2.07      2.5±0.21µs        ? ?/sec      1.00  1207.9±74.33ns        ? ?/sec
no_archetypes/system_count/100                           1.01     99.5±5.50µs        ? ?/sec      1.00     98.1±3.91µs        ? ?/sec      1.26    124.1±2.14µs        ? ?/sec
no_archetypes/system_count/20                            1.00     24.3±1.58µs        ? ?/sec      1.01     24.6±2.33µs        ? ?/sec      1.29     31.4±3.10µs        ? ?/sec
no_archetypes/system_count/40                            1.00     41.4±2.24µs        ? ?/sec      1.04     43.0±1.83µs        ? ?/sec      1.22     50.6±1.09µs        ? ?/sec
no_archetypes/system_count/60                            1.03     64.0±3.55µs        ? ?/sec      1.00     62.2±1.68µs        ? ?/sec      1.19     74.3±1.15µs        ? ?/sec
no_archetypes/system_count/80                            1.03     81.1±4.90µs        ? ?/sec      1.00     78.6±2.95µs        ? ?/sec      1.25     98.3±1.83µs        ? ?/sec
overhead_par_iter/threads/1                              1.53     45.9±3.65µs        ? ?/sec      1.00     30.1±0.65µs        ? ?/sec      1.07     32.0±0.72µs        ? ?/sec
overhead_par_iter/threads/16                             1.00     81.8±7.66µs        ? ?/sec      1.33    108.4±3.71µs        ? ?/sec      1.81    147.9±2.53µs        ? ?/sec
overhead_par_iter/threads/2                              1.81     53.0±2.80µs        ? ?/sec      1.00     29.2±0.86µs        ? ?/sec      1.26     37.0±0.22µs        ? ?/sec
overhead_par_iter/threads/32                             1.00     86.2±2.74µs        ? ?/sec      1.51    130.0±3.42µs        ? ?/sec      2.02    174.2±4.00µs        ? ?/sec
overhead_par_iter/threads/4                              1.00     70.2±4.63µs        ? ?/sec      1.05     73.7±4.61µs        ? ?/sec      1.09     76.5±3.37µs        ? ?/sec
overhead_par_iter/threads/8                              1.18     83.8±4.04µs        ? ?/sec      1.00     71.2±4.02µs        ? ?/sec      1.42    100.8±3.34µs        ? ?/sec
query_get/50000_entities_sparse                          1.03  1069.2±50.78µs        ? ?/sec      1.00  1038.5±10.13µs        ? ?/sec      1.00  1042.5±15.18µs        ? ?/sec
query_get/50000_entities_table                           1.02   608.8±37.92µs        ? ?/sec      1.00    594.1±3.75µs        ? ?/sec      1.01   601.4±20.41µs        ? ?/sec
run_criteria/no/001_systems                              1.03  1429.0±128.56ns        ? ?/sec     1.00  1382.8±173.28ns        ? ?/sec     1.76      2.4±0.37µs        ? ?/sec
run_criteria/no/006_systems                              1.27  1880.9±138.02ns        ? ?/sec     1.00  1478.4±142.05ns        ? ?/sec     2.29      3.4±1.14µs        ? ?/sec
run_criteria/no/011_systems                              1.05  1567.0±52.07ns        ? ?/sec      1.00  1493.2±32.33ns        ? ?/sec      3.28      4.9±1.78µs        ? ?/sec
run_criteria/no/016_systems                              1.07  1626.9±141.83ns        ? ?/sec     1.00  1524.8±115.71ns        ? ?/sec     4.26      6.5±2.59µs        ? ?/sec
run_criteria/no/021_systems                              1.06  1700.6±43.36ns        ? ?/sec      1.00  1602.6±132.73ns        ? ?/sec     5.25      8.4±4.70µs        ? ?/sec
run_criteria/no/026_systems                              1.05  1852.0±46.34ns        ? ?/sec      1.00  1759.7±79.72ns        ? ?/sec      3.79      6.7±4.43µs        ? ?/sec
run_criteria/no/031_systems                              1.01  1970.4±65.72ns        ? ?/sec      1.00  1943.0±92.14ns        ? ?/sec      3.88      7.5±4.82µs        ? ?/sec
run_criteria/no/036_systems                              1.00      2.1±0.08µs        ? ?/sec      1.50      3.2±1.27µs        ? ?/sec      5.40     11.5±6.12µs        ? ?/sec
run_criteria/no/041_systems                              1.00      2.3±0.10µs        ? ?/sec      1.43      3.3±1.11µs        ? ?/sec      4.46     10.4±5.79µs        ? ?/sec
run_criteria/no/046_systems                              1.00      2.4±0.08µs        ? ?/sec      1.32      3.2±0.79µs        ? ?/sec      3.88      9.5±4.81µs        ? ?/sec
run_criteria/no/051_systems                              1.00      3.0±0.52µs        ? ?/sec      1.39      4.2±1.30µs        ? ?/sec      3.11      9.4±4.90µs        ? ?/sec
run_criteria/no/056_systems                              1.00      3.6±0.79µs        ? ?/sec      1.94      7.1±2.69µs        ? ?/sec      4.42     16.1±4.57µs        ? ?/sec
run_criteria/no/061_systems                              1.00      4.3±1.09µs        ? ?/sec      1.83      7.9±3.50µs        ? ?/sec      2.91     12.6±5.18µs        ? ?/sec
run_criteria/no/066_systems                              1.00      5.3±1.11µs        ? ?/sec      1.70      9.0±3.12µs        ? ?/sec      3.58     18.9±3.20µs        ? ?/sec
run_criteria/no/071_systems                              1.00      4.6±1.34µs        ? ?/sec      2.62     12.1±3.45µs        ? ?/sec      3.83     17.7±5.02µs        ? ?/sec
run_criteria/no/076_systems                              1.00      5.9±1.78µs        ? ?/sec      2.30     13.7±3.17µs        ? ?/sec      3.35     19.9±2.21µs        ? ?/sec
run_criteria/no/081_systems                              1.00      7.5±2.08µs        ? ?/sec      1.92     14.4±2.94µs        ? ?/sec      2.67     20.1±2.70µs        ? ?/sec
run_criteria/no/086_systems                              1.00     11.0±2.36µs        ? ?/sec      1.33     14.5±3.28µs        ? ?/sec      2.02     22.2±2.09µs        ? ?/sec
run_criteria/no/091_systems                              1.00     12.3±1.90µs        ? ?/sec      1.30     16.0±1.77µs        ? ?/sec      1.71     21.0±2.49µs        ? ?/sec
run_criteria/no/096_systems                              1.00     13.0±1.64µs        ? ?/sec      1.28     16.6±1.89µs        ? ?/sec      1.69     22.0±1.29µs        ? ?/sec
run_criteria/no/101_systems                              1.00     15.5±1.61µs        ? ?/sec      1.09     16.8±1.13µs        ? ?/sec      1.45     22.5±1.46µs        ? ?/sec
run_criteria/no_with_labels/001_systems                  1.00  1342.6±55.58ns        ? ?/sec      1.79      2.4±0.61µs        ? ?/sec      1.78      2.4±0.32µs        ? ?/sec
run_criteria/no_with_labels/006_systems                  1.00  1840.7±158.89ns        ? ?/sec     1.07  1963.1±302.27ns        ? ?/sec     1.43      2.6±0.31µs        ? ?/sec
run_criteria/no_with_labels/011_systems                  1.00  1561.0±101.44ns        ? ?/sec     1.34      2.1±0.44µs        ? ?/sec      2.02      3.2±0.61µs        ? ?/sec
run_criteria/no_with_labels/016_systems                  1.00  1450.3±69.17ns        ? ?/sec      1.30  1880.3±249.43ns        ? ?/sec     2.50      3.6±0.79µs        ? ?/sec
run_criteria/no_with_labels/021_systems                  1.06  1790.6±140.99ns        ? ?/sec     1.00  1690.2±352.66ns        ? ?/sec     2.64      4.5±2.31µs        ? ?/sec
run_criteria/no_with_labels/026_systems                  1.00  1691.0±39.38ns        ? ?/sec      1.01  1715.5±97.53ns        ? ?/sec      4.11      7.0±2.94µs        ? ?/sec
run_criteria/no_with_labels/031_systems                  1.00  1806.5±106.99ns        ? ?/sec     1.16      2.1±0.67µs        ? ?/sec      5.06      9.1±4.35µs        ? ?/sec
run_criteria/no_with_labels/036_systems                  1.00      2.0±0.12µs        ? ?/sec      1.08      2.2±0.33µs        ? ?/sec      5.59     11.4±5.43µs        ? ?/sec
run_criteria/no_with_labels/041_systems                  1.00      2.2±0.12µs        ? ?/sec      1.32      2.9±0.62µs        ? ?/sec      5.49     11.9±6.89µs        ? ?/sec
run_criteria/no_with_labels/046_systems                  1.00      2.3±0.10µs        ? ?/sec      1.88      4.2±1.37µs        ? ?/sec      4.65     10.5±5.59µs        ? ?/sec
run_criteria/no_with_labels/051_systems                  1.00      2.2±0.09µs        ? ?/sec      1.80      3.9±2.14µs        ? ?/sec      4.31      9.5±5.32µs        ? ?/sec
run_criteria/no_with_labels/056_systems                  1.00      2.6±0.41µs        ? ?/sec      1.74      4.6±2.75µs        ? ?/sec      4.36     11.5±5.43µs        ? ?/sec
run_criteria/no_with_labels/061_systems                  1.00      2.7±0.27µs        ? ?/sec      1.75      4.7±1.61µs        ? ?/sec      4.39     11.8±5.33µs        ? ?/sec
run_criteria/no_with_labels/066_systems                  1.00      2.8±0.26µs        ? ?/sec      2.73      7.6±3.89µs        ? ?/sec      5.37     15.0±5.54µs        ? ?/sec
run_criteria/no_with_labels/071_systems                  1.00      3.2±0.37µs        ? ?/sec      2.59      8.3±3.84µs        ? ?/sec      5.08     16.3±4.96µs        ? ?/sec
run_criteria/no_with_labels/076_systems                  1.00      4.1±0.72µs        ? ?/sec      2.11      8.6±3.26µs        ? ?/sec      4.04     16.5±5.21µs        ? ?/sec
run_criteria/no_with_labels/081_systems                  1.00      4.7±0.94µs        ? ?/sec      2.00      9.4±3.33µs        ? ?/sec      3.76     17.7±4.16µs        ? ?/sec
run_criteria/no_with_labels/086_systems                  1.00      5.3±1.62µs        ? ?/sec      1.84      9.8±3.26µs        ? ?/sec      3.61     19.2±3.45µs        ? ?/sec
run_criteria/no_with_labels/091_systems                  1.00      5.6±1.43µs        ? ?/sec      1.86     10.4±4.98µs        ? ?/sec      3.40     19.0±4.59µs        ? ?/sec
run_criteria/no_with_labels/096_systems                  1.00      6.3±1.65µs        ? ?/sec      1.89     12.0±4.60µs        ? ?/sec      3.14     19.9±2.57µs        ? ?/sec
run_criteria/no_with_labels/101_systems                  1.00      7.5±2.31µs        ? ?/sec      1.94     14.5±3.53µs        ? ?/sec      2.74     20.5±2.68µs        ? ?/sec
run_criteria/yes/001_systems                             1.06      5.9±0.42µs        ? ?/sec      1.00      5.6±0.30µs        ? ?/sec      1.46      8.2±0.41µs        ? ?/sec
run_criteria/yes/006_systems                             1.00     12.3±1.20µs        ? ?/sec      1.03     12.6±0.35µs        ? ?/sec      1.15     14.1±0.34µs        ? ?/sec
run_criteria/yes/011_systems                             1.00     17.9±1.65µs        ? ?/sec      1.00     18.0±1.64µs        ? ?/sec      1.18     21.1±0.77µs        ? ?/sec
run_criteria/yes/016_systems                             1.10     23.4±2.54µs        ? ?/sec      1.00     21.2±2.37µs        ? ?/sec      1.25     26.5±0.83µs        ? ?/sec
run_criteria/yes/021_systems                             1.04     27.2±2.86µs        ? ?/sec      1.00     26.2±3.07µs        ? ?/sec      1.22     32.0±1.23µs        ? ?/sec
run_criteria/yes/026_systems                             1.11     33.7±2.31µs        ? ?/sec      1.00     30.3±2.70µs        ? ?/sec      1.26     38.2±0.91µs        ? ?/sec
run_criteria/yes/031_systems                             1.09     38.5±2.82µs        ? ?/sec      1.00     35.4±3.79µs        ? ?/sec      1.22     43.1±0.97µs        ? ?/sec
run_criteria/yes/036_systems                             1.04     41.5±3.91µs        ? ?/sec      1.00     40.0±3.96µs        ? ?/sec      1.27     50.9±1.08µs        ? ?/sec
run_criteria/yes/041_systems                             1.12     47.3±4.65µs        ? ?/sec      1.00     42.0±3.72µs        ? ?/sec      1.30     54.7±0.90µs        ? ?/sec
run_criteria/yes/046_systems                             1.15     53.2±3.36µs        ? ?/sec      1.00     46.2±4.37µs        ? ?/sec      1.34     61.8±1.30µs        ? ?/sec
run_criteria/yes/051_systems                             1.14     55.8±4.93µs        ? ?/sec      1.00     49.0±4.25µs        ? ?/sec      1.41     69.1±1.40µs        ? ?/sec
run_criteria/yes/056_systems                             1.16     60.8±3.97µs        ? ?/sec      1.00     52.6±3.70µs        ? ?/sec      1.41     74.2±1.12µs        ? ?/sec
run_criteria/yes/061_systems                             1.15     62.8±5.42µs        ? ?/sec      1.00     54.8±3.33µs        ? ?/sec      1.51     82.5±1.58µs        ? ?/sec
run_criteria/yes/066_systems                             1.12     66.9±7.21µs        ? ?/sec      1.00     59.8±3.83µs        ? ?/sec      1.49     89.0±2.73µs        ? ?/sec
run_criteria/yes/071_systems                             1.12     72.7±6.34µs        ? ?/sec      1.00     64.8±4.14µs        ? ?/sec      1.44     93.5±2.38µs        ? ?/sec
run_criteria/yes/076_systems                             1.07     74.2±6.22µs        ? ?/sec      1.00     69.4±4.33µs        ? ?/sec      1.47    101.8±2.52µs        ? ?/sec
run_criteria/yes/081_systems                             1.06     79.1±5.81µs        ? ?/sec      1.00     74.7±3.73µs        ? ?/sec      1.44    107.3±2.85µs        ? ?/sec
run_criteria/yes/086_systems                             1.10     87.6±5.72µs        ? ?/sec      1.00     79.6±4.92µs        ? ?/sec      1.44    114.7±3.39µs        ? ?/sec
run_criteria/yes/091_systems                             1.00     86.5±6.30µs        ? ?/sec      1.01     87.4±4.26µs        ? ?/sec      1.44    124.2±3.80µs        ? ?/sec
run_criteria/yes/096_systems                             1.00     90.0±5.66µs        ? ?/sec      1.01     91.0±4.75µs        ? ?/sec      1.45    130.9±3.60µs        ? ?/sec
run_criteria/yes/101_systems                             1.01     96.6±8.29µs        ? ?/sec      1.00     95.5±4.38µs        ? ?/sec      1.45    138.6±3.72µs        ? ?/sec
run_criteria/yes_using_query/001_systems                 1.15      6.2±0.22µs        ? ?/sec      1.00      5.5±0.32µs        ? ?/sec      1.53      8.3±0.21µs        ? ?/sec
run_criteria/yes_using_query/006_systems                 1.00     12.8±0.38µs        ? ?/sec      1.00     12.8±0.56µs        ? ?/sec      1.15     14.7±0.66µs        ? ?/sec
run_criteria/yes_using_query/011_systems                 1.05     18.4±1.22µs        ? ?/sec      1.00     17.5±1.20µs        ? ?/sec      1.21     21.0±0.38µs        ? ?/sec
run_criteria/yes_using_query/016_systems                 1.12     24.0±2.52µs        ? ?/sec      1.00     21.4±1.40µs        ? ?/sec      1.23     26.4±0.73µs        ? ?/sec
run_criteria/yes_using_query/021_systems                 1.05     28.4±2.53µs        ? ?/sec      1.00     27.1±1.72µs        ? ?/sec      1.21     32.8±0.90µs        ? ?/sec
run_criteria/yes_using_query/026_systems                 1.05     33.3±2.84µs        ? ?/sec      1.00     31.6±2.12µs        ? ?/sec      1.21     38.1±0.99µs        ? ?/sec
run_criteria/yes_using_query/031_systems                 1.07     38.7±1.96µs        ? ?/sec      1.00     36.0±2.98µs        ? ?/sec      1.24     44.5±0.86µs        ? ?/sec
run_criteria/yes_using_query/036_systems                 1.05     42.7±2.93µs        ? ?/sec      1.00     40.7±2.13µs        ? ?/sec      1.23     50.0±0.87µs        ? ?/sec
run_criteria/yes_using_query/041_systems                 1.10     48.1±3.20µs        ? ?/sec      1.00     43.6±2.38µs        ? ?/sec      1.27     55.6±1.16µs        ? ?/sec
run_criteria/yes_using_query/046_systems                 1.10     51.1±3.71µs        ? ?/sec      1.00     46.6±3.27µs        ? ?/sec      1.32     61.5±1.09µs        ? ?/sec
run_criteria/yes_using_query/051_systems                 1.09     57.0±4.18µs        ? ?/sec      1.00     52.5±3.20µs        ? ?/sec      1.32     69.5±1.47µs        ? ?/sec
run_criteria/yes_using_query/056_systems                 1.07     58.6±5.94µs        ? ?/sec      1.00     54.6±3.56µs        ? ?/sec      1.39     75.7±1.79µs        ? ?/sec
run_criteria/yes_using_query/061_systems                 1.09     62.6±5.36µs        ? ?/sec      1.00     57.5±3.79µs        ? ?/sec      1.41     80.9±2.18µs        ? ?/sec
run_criteria/yes_using_query/066_systems                 1.09     69.6±4.94µs        ? ?/sec      1.00     63.8±3.02µs        ? ?/sec      1.36     86.5±2.26µs        ? ?/sec
run_criteria/yes_using_query/071_systems                 1.05     73.0±6.70µs        ? ?/sec      1.00     69.7±4.43µs        ? ?/sec      1.39     96.6±2.73µs        ? ?/sec
run_criteria/yes_using_query/076_systems                 1.06     76.1±8.62µs        ? ?/sec      1.00     72.0±3.49µs        ? ?/sec      1.41    101.5±2.88µs        ? ?/sec
run_criteria/yes_using_query/081_systems                 1.03     81.9±7.86µs        ? ?/sec      1.00     79.4±4.25µs        ? ?/sec      1.38    109.9±3.30µs        ? ?/sec
run_criteria/yes_using_query/086_systems                 1.00     82.8±8.81µs        ? ?/sec      1.00     82.9±4.94µs        ? ?/sec      1.44    119.6±3.07µs        ? ?/sec
run_criteria/yes_using_query/091_systems                 1.00    86.8±10.23µs        ? ?/sec      1.00     87.1±3.50µs        ? ?/sec      1.42    123.2±3.44µs        ? ?/sec
run_criteria/yes_using_query/096_systems                 1.00     90.9±6.76µs        ? ?/sec      1.01     91.7±4.37µs        ? ?/sec      1.44    131.2±2.87µs        ? ?/sec
run_criteria/yes_using_query/101_systems                 1.00     94.0±8.51µs        ? ?/sec      1.05     98.5±5.05µs        ? ?/sec      1.56    146.4±5.27µs        ? ?/sec
run_criteria/yes_using_resource/001_systems              1.13      6.0±0.29µs        ? ?/sec      1.00      5.3±0.41µs        ? ?/sec      1.55      8.2±0.28µs        ? ?/sec
run_criteria/yes_using_resource/006_systems              1.02     12.2±0.74µs        ? ?/sec      1.00     12.0±0.54µs        ? ?/sec      1.22     14.6±0.35µs        ? ?/sec
run_criteria/yes_using_resource/011_systems              1.07     17.8±1.95µs        ? ?/sec      1.00     16.6±1.26µs        ? ?/sec      1.22     20.2±0.67µs        ? ?/sec
run_criteria/yes_using_resource/016_systems              1.10     23.5±2.12µs        ? ?/sec      1.00     21.3±1.74µs        ? ?/sec      1.25     26.7±0.76µs        ? ?/sec
run_criteria/yes_using_resource/021_systems              1.05     27.8±2.66µs        ? ?/sec      1.00     26.5±2.49µs        ? ?/sec      1.24     33.0±0.86µs        ? ?/sec
run_criteria/yes_using_resource/026_systems              1.06     33.5±2.79µs        ? ?/sec      1.00     31.7±2.52µs        ? ?/sec      1.23     38.9±0.74µs        ? ?/sec
run_criteria/yes_using_resource/031_systems              1.07     38.4±3.51µs        ? ?/sec      1.00     35.9±2.22µs        ? ?/sec      1.24     44.6±0.78µs        ? ?/sec
run_criteria/yes_using_resource/036_systems              1.03     42.2±3.24µs        ? ?/sec      1.00     40.8±2.23µs        ? ?/sec      1.24     50.7±1.42µs        ? ?/sec
run_criteria/yes_using_resource/041_systems              1.09     47.0±3.85µs        ? ?/sec      1.00     43.1±3.53µs        ? ?/sec      1.29     55.6±1.20µs        ? ?/sec
run_criteria/yes_using_resource/046_systems              1.09     51.3±3.60µs        ? ?/sec      1.00     46.9±3.26µs        ? ?/sec      1.31     61.4±1.07µs        ? ?/sec
run_criteria/yes_using_resource/051_systems              1.07     54.7±5.04µs        ? ?/sec      1.00     51.1±4.06µs        ? ?/sec      1.36     69.4±1.72µs        ? ?/sec
run_criteria/yes_using_resource/056_systems              1.10     59.9±6.51µs        ? ?/sec      1.00     54.3±2.42µs        ? ?/sec      1.41     76.4±1.90µs        ? ?/sec
run_criteria/yes_using_resource/061_systems              1.07     62.6±7.94µs        ? ?/sec      1.00     58.7±3.66µs        ? ?/sec      1.39     81.4±1.92µs        ? ?/sec
run_criteria/yes_using_resource/066_systems              1.08     67.7±5.80µs        ? ?/sec      1.00     62.9±3.09µs        ? ?/sec      1.37     86.3±1.64µs        ? ?/sec
run_criteria/yes_using_resource/071_systems              1.11     71.4±5.93µs        ? ?/sec      1.00     64.1±3.50µs        ? ?/sec      1.50     95.9±2.09µs        ? ?/sec
run_criteria/yes_using_resource/076_systems              1.14     80.5±7.30µs        ? ?/sec      1.00     70.9±3.47µs        ? ?/sec      1.45    103.0±2.42µs        ? ?/sec
run_criteria/yes_using_resource/081_systems              1.07     79.6±5.45µs        ? ?/sec      1.00     74.1±4.07µs        ? ?/sec      1.50    111.5±2.80µs        ? ?/sec
run_criteria/yes_using_resource/086_systems              1.05     84.9±6.54µs        ? ?/sec      1.00     80.7±4.53µs        ? ?/sec      1.49    120.3±2.54µs        ? ?/sec
run_criteria/yes_using_resource/091_systems              1.00     85.3±6.39µs        ? ?/sec      1.01     86.3±4.83µs        ? ?/sec      1.43    121.9±2.78µs        ? ?/sec
run_criteria/yes_using_resource/096_systems              1.00     89.6±7.13µs        ? ?/sec      1.03     91.9±5.97µs        ? ?/sec      1.50    134.2±3.73µs        ? ?/sec
run_criteria/yes_using_resource/101_systems              1.00     92.3±5.49µs        ? ?/sec      1.13    104.1±4.77µs        ? ?/sec      1.51    139.6±3.70µs        ? ?/sec
run_criteria/yes_with_labels/001_systems                 1.14      5.9±0.17µs        ? ?/sec      1.00      5.1±0.20µs        ? ?/sec      1.65      8.4±0.44µs        ? ?/sec
run_criteria/yes_with_labels/006_systems                 1.00     11.0±0.69µs        ? ?/sec      1.09     12.0±0.42µs        ? ?/sec      1.35     14.8±0.40µs        ? ?/sec
run_criteria/yes_with_labels/011_systems                 1.00     16.2±1.53µs        ? ?/sec      1.05     17.0±1.99µs        ? ?/sec      1.26     20.4±0.80µs        ? ?/sec
run_criteria/yes_with_labels/016_systems                 1.00     20.9±1.89µs        ? ?/sec      1.05     21.9±1.98µs        ? ?/sec      1.31     27.3±0.65µs        ? ?/sec
run_criteria/yes_with_labels/021_systems                 1.00     25.2±2.47µs        ? ?/sec      1.04     26.2±2.54µs        ? ?/sec      1.34     33.8±0.75µs        ? ?/sec
run_criteria/yes_with_labels/026_systems                 1.00     29.8±1.84µs        ? ?/sec      1.04     31.0±2.20µs        ? ?/sec      1.34     39.9±1.15µs        ? ?/sec
run_criteria/yes_with_labels/031_systems                 1.00     33.2±2.60µs        ? ?/sec      1.06     35.2±2.69µs        ? ?/sec      1.36     45.1±1.00µs        ? ?/sec
run_criteria/yes_with_labels/036_systems                 1.00     37.4±2.68µs        ? ?/sec      1.06     39.8±2.94µs        ? ?/sec      1.39     51.9±1.33µs        ? ?/sec
run_criteria/yes_with_labels/041_systems                 1.00     41.0±2.71µs        ? ?/sec      1.06     43.3±3.37µs        ? ?/sec      1.39     57.0±1.74µs        ? ?/sec
run_criteria/yes_with_labels/046_systems                 1.00     44.8±2.43µs        ? ?/sec      1.03     46.3±3.08µs        ? ?/sec      1.42     63.4±0.99µs        ? ?/sec
run_criteria/yes_with_labels/051_systems                 1.00     49.4±2.97µs        ? ?/sec      1.04     51.2±2.31µs        ? ?/sec      1.41     69.8±1.14µs        ? ?/sec
run_criteria/yes_with_labels/056_systems                 1.00     53.9±3.28µs        ? ?/sec      1.01     54.6±2.65µs        ? ?/sec      1.42     76.5±1.20µs        ? ?/sec
run_criteria/yes_with_labels/061_systems                 1.00     56.6±3.12µs        ? ?/sec      1.06     60.0±2.69µs        ? ?/sec      1.47     83.2±1.48µs        ? ?/sec
run_criteria/yes_with_labels/066_systems                 1.00     64.0±4.34µs        ? ?/sec      1.03     65.9±3.28µs        ? ?/sec      1.38     88.3±1.12µs        ? ?/sec
run_criteria/yes_with_labels/071_systems                 1.00     65.6±5.71µs        ? ?/sec      1.08     70.6±2.46µs        ? ?/sec      1.44     94.4±1.52µs        ? ?/sec
run_criteria/yes_with_labels/076_systems                 1.00     67.0±5.02µs        ? ?/sec      1.09     72.8±3.35µs        ? ?/sec      1.53    102.5±1.87µs        ? ?/sec
run_criteria/yes_with_labels/081_systems                 1.00     71.8±4.10µs        ? ?/sec      1.11     79.9±3.53µs        ? ?/sec      1.52    109.0±1.60µs        ? ?/sec
run_criteria/yes_with_labels/086_systems                 1.00     75.8±4.21µs        ? ?/sec      1.10     83.1±3.85µs        ? ?/sec      1.56    118.1±2.22µs        ? ?/sec
run_criteria/yes_with_labels/091_systems                 1.00     78.4±4.85µs        ? ?/sec      1.13     88.6±4.13µs        ? ?/sec      1.58    124.1±2.18µs        ? ?/sec
run_criteria/yes_with_labels/096_systems                 1.00     81.8±6.04µs        ? ?/sec      1.12     92.0±3.77µs        ? ?/sec      1.61    131.9±2.19µs        ? ?/sec
run_criteria/yes_with_labels/101_systems                 1.00     85.5±9.67µs        ? ?/sec      1.18    100.7±4.77µs        ? ?/sec      1.61    137.7±3.40µs        ? ?/sec
schedule/base                                            1.27     38.1±2.98µs        ? ?/sec      1.00     30.0±2.94µs        ? ?/sec      1.51     45.2±1.43µs        ? ?/sec
</details>

In my mind, all workloads should be able to be scheduled across all logical CPU threads

This is a good strategy for non-timing sensitive work, but is likely to introduce painful latency in some places. In particular, I expect this strategy will be unacceptable for audio and input management. It is better to have wasted work than delays in some cases.

I've worked on embedded systems running real-time multimedia processing tasks with more active processing threads than physical cores / logical threads that leveraged the OS CPU scheduler without problem for audio purposes too. The audio thread would normally be much higher priority as you might expect.

Thread priority is only on specific platforms. I don't know of a web worker API for it.

That's a good point. But should we aim for lowest common denominator because of one platform, or should we aim for making the most of the different platforms, especially if most do have a thread priority API, and we just have to implement something else for the exceptions that don't? I'd vote for the latter.

Even then, thread priority is only really useful when you are already using 100% of the CPU and are overcommitted system wide.

I'd probably even want to try without thread priorities first.

As shown when we erroneously had an extra task pool around, having a non-1:1 correspondence between CPU cores and threads can have a negative impact on perf. An OS level thread context switch is expensive, and we should avoid yielding as much as possible.

I don't mean to be rude in writing this, rather to demonstrate that the argument isn't very strong - I could express something similar but in the other direction that says partitioning available logical threads between different task pools such that some task pools cannot use threads available in other task pools can have a negative impact on performance.
In practice, performance of multi-threaded tasks will vary depending on the number of threads used. Too few and you don't leverage the available processing power. Too many and there's too much contention. But, for example, x264 (a highly optimised H.264 video encoder) defaults to using 1.5x logical threads as this was tested to give the best performance.
I'd like us to try to leverage OS scheduling and show that we need to partition the available logical threads before we do it and prevent tasks from using at least all available logical threads for their processing. Same for whether thread priorities are needed. I'd want to do the simple thing first, test it with different combinations of heavy workloads spawning different amounts of threads, and measure so we can identify the problems we see and come up with solutions to those. Maybe this has already been done and resulted in the current task pool design and I just haven't seen it. From the discussions I've seen, it seems more like there is a fear of overwhelming the CPU and OS scheduler and it causing problems, but this has not been observed in practice. Please tell me, or ideally show me, if I am wrong.

I've worked on embedded systems running real-time (not real-time operating system, just real-time usage context like audio/video capture and playback in various contexts) multimedia processing tasks with more active processing threads than physical cores / logical threads that leveraged the OS CPU scheduler without problem for audio purposes too. The audio thread would normally be much higher priority as you might expect.

Just to clarify, the proposal here is to still have dedicated threads for lower priority tasks only? Or is the idea to any task run on any thread?
If it's the latter, a counter example is trivially constructed by making an async compute task for every thread spawned that never releases control of the thread back to the task pool, regardless of how we or the OS prioritizes, those tasks will lock up all of the available threads, and we can't get around that without spawning more threads. In those cases, we must defer running lower priority tasks to avoid higher priority starvation. The logical separation is bad for perf, that's undeniable, I just question if the alternative is any better. Which leads us to...
If it's the former, I'm concerned about the potential difficult to measure context switching costs. Bevy's built around ECS, meant to minimize the amount of cache misses the CPU incurs. A thread context switch, however infrequent, trashes all of it and forces refetching the entire context from memory. Of course we're already subject to this from the OS and external processes, but I'd really want to avoid incurring this internally wherever possible.

Tested out a suggestion from @hymm to mix both local and global queue stealing and it does seem to improve the results by a bit more.  Removing the active slab removes the only mandatory lock required when spawning tasks, at the cost of potentially delaying followup tasks depending on the OS thread scheduler.

sharded-slab's constant overhead is currently higher than a mutex lock on both ends, which takes it out of consideration.
Removing the active slab entirely seems to cut the spawning overhead significantly and addresses some of the contention issues. However, it does seem to add additional overhead when waiting for the executor to progress after tasks complete, which seems to be bound by when the OS thread scheduler unparks the associated threads. Probably less of an issue with Bevy in particular since we have a steady stream of incoming tasks that keeps driving the executor.

Comparing the prior best results with the two experiments
group                                                    mixed-local-global                       no-active                                sharded-slab
-----                                                    ------------------                       ---------                                ------------
added_archetypes/archetype_count/100                     1.00   154.8±10.13µs        ? ?/sec      1.01    155.9±9.91µs        ? ?/sec      1.23   189.7±11.77µs        ? ?/sec
added_archetypes/archetype_count/1000                    1.08   751.4±37.22µs        ? ?/sec      1.00   694.9±10.82µs        ? ?/sec      1.09   758.1±47.90µs        ? ?/sec
added_archetypes/archetype_count/10000                   1.00     10.6±0.57ms        ? ?/sec      1.07     11.3±1.35ms        ? ?/sec      1.50     15.8±1.20ms        ? ?/sec
added_archetypes/archetype_count/200                     1.12   230.3±11.39µs        ? ?/sec      1.00    205.4±7.75µs        ? ?/sec      1.20    245.7±8.29µs        ? ?/sec
added_archetypes/archetype_count/2000                    1.03  1396.7±36.56µs        ? ?/sec      1.00  1359.5±28.68µs        ? ?/sec      1.13  1534.9±189.60µs        ? ?/sec
added_archetypes/archetype_count/500                     1.17   450.6±28.64µs        ? ?/sec      1.00   385.6±12.41µs        ? ?/sec      1.11   427.2±11.37µs        ? ?/sec
added_archetypes/archetype_count/5000                    1.01      3.7±0.28ms        ? ?/sec      1.00      3.7±0.18ms        ? ?/sec      1.97      7.2±1.16ms        ? ?/sec
busy_systems/01x_entities_03_systems                     1.03     36.4±2.13µs        ? ?/sec      1.00     35.5±2.31µs        ? ?/sec      1.25     44.5±2.35µs        ? ?/sec
busy_systems/01x_entities_06_systems                     1.01     66.9±5.00µs        ? ?/sec      1.00     66.1±3.30µs        ? ?/sec      1.30     85.7±2.79µs        ? ?/sec
busy_systems/01x_entities_09_systems                     1.00     95.1±4.33µs        ? ?/sec      1.02     96.9±5.60µs        ? ?/sec      1.23    117.2±5.24µs        ? ?/sec
busy_systems/01x_entities_12_systems                     1.00    127.5±7.63µs        ? ?/sec      1.02    129.5±6.13µs        ? ?/sec      1.21    154.0±6.90µs        ? ?/sec
busy_systems/01x_entities_15_systems                     1.00   162.2±10.64µs        ? ?/sec      1.00    162.6±8.61µs        ? ?/sec      1.15    185.9±4.74µs        ? ?/sec
busy_systems/02x_entities_03_systems                     1.09     70.6±6.43µs        ? ?/sec      1.00     65.1±3.38µs        ? ?/sec      1.15     74.9±4.58µs        ? ?/sec
busy_systems/02x_entities_06_systems                     1.01    124.7±9.91µs        ? ?/sec      1.00    123.7±5.12µs        ? ?/sec      1.04    129.0±4.75µs        ? ?/sec
busy_systems/02x_entities_09_systems                     1.00    175.2±6.28µs        ? ?/sec      1.01    176.7±7.50µs        ? ?/sec      1.23    214.9±9.17µs        ? ?/sec
busy_systems/02x_entities_12_systems                     1.00   235.4±10.59µs        ? ?/sec      1.01    237.0±9.99µs        ? ?/sec      1.12   264.3±12.83µs        ? ?/sec
busy_systems/02x_entities_15_systems                     1.01   298.8±13.44µs        ? ?/sec      1.00   296.2±15.90µs        ? ?/sec      1.10   325.2±11.70µs        ? ?/sec
busy_systems/03x_entities_03_systems                     1.00    90.2±11.06µs        ? ?/sec      1.02     91.8±5.73µs        ? ?/sec      1.25    113.1±7.72µs        ? ?/sec
busy_systems/03x_entities_06_systems                     1.00    167.1±9.82µs        ? ?/sec      1.04    174.5±7.36µs        ? ?/sec      1.20   200.3±10.46µs        ? ?/sec
busy_systems/03x_entities_09_systems                     1.00    245.1±8.95µs        ? ?/sec      1.03   252.1±14.62µs        ? ?/sec      1.24    303.5±8.47µs        ? ?/sec
busy_systems/03x_entities_12_systems                     1.00   330.2±17.08µs        ? ?/sec      1.00   329.8±13.39µs        ? ?/sec      1.14   377.4±18.62µs        ? ?/sec
busy_systems/03x_entities_15_systems                     1.00   406.2±15.55µs        ? ?/sec      1.04   420.4±23.64µs        ? ?/sec      1.13   460.4±15.63µs        ? ?/sec
busy_systems/04x_entities_03_systems                     1.00    112.1±7.63µs        ? ?/sec      1.15    129.0±7.04µs        ? ?/sec      1.20    134.9±9.63µs        ? ?/sec
busy_systems/04x_entities_06_systems                     1.00   215.1±11.72µs        ? ?/sec      1.06   228.4±11.49µs        ? ?/sec      1.33   285.3±10.75µs        ? ?/sec
busy_systems/04x_entities_09_systems                     1.00   320.5±23.95µs        ? ?/sec      1.08   347.0±33.66µs        ? ?/sec      1.24   397.3±14.48µs        ? ?/sec
busy_systems/04x_entities_12_systems                     1.00   424.4±25.88µs        ? ?/sec      1.03   438.9±15.06µs        ? ?/sec      1.13   477.5±19.19µs        ? ?/sec
busy_systems/04x_entities_15_systems                     1.00   530.5±30.68µs        ? ?/sec      1.03   548.6±17.30µs        ? ?/sec      1.13   602.1±29.75µs        ? ?/sec
busy_systems/05x_entities_03_systems                     1.00   144.5±14.64µs        ? ?/sec      1.00    144.2±5.23µs        ? ?/sec      1.44   208.1±14.58µs        ? ?/sec
busy_systems/05x_entities_06_systems                     1.00   279.1±23.35µs        ? ?/sec      1.02   284.4±13.21µs        ? ?/sec      1.21   337.8±20.61µs        ? ?/sec
busy_systems/05x_entities_09_systems                     1.00   409.0±18.07µs        ? ?/sec      1.04   425.6±22.15µs        ? ?/sec      1.18   482.3±19.72µs        ? ?/sec
busy_systems/05x_entities_12_systems                     1.00   539.9±21.90µs        ? ?/sec      1.05   567.9±26.21µs        ? ?/sec      1.20   645.9±27.31µs        ? ?/sec
busy_systems/05x_entities_15_systems                     1.00   689.7±37.32µs        ? ?/sec      1.01   698.0±43.16µs        ? ?/sec      1.15   794.9±23.81µs        ? ?/sec
contrived/01x_entities_03_systems                        1.00     22.8±1.65µs        ? ?/sec      1.12     25.6±2.88µs        ? ?/sec      1.29     29.3±0.53µs        ? ?/sec
contrived/01x_entities_06_systems                        1.00     45.1±2.35µs        ? ?/sec      1.00     44.9±3.41µs        ? ?/sec      1.21     54.2±2.33µs        ? ?/sec
contrived/01x_entities_09_systems                        1.08     63.8±2.70µs        ? ?/sec      1.00     58.8±3.08µs        ? ?/sec      1.31     77.3±1.81µs        ? ?/sec
contrived/01x_entities_12_systems                        1.05     81.0±5.34µs        ? ?/sec      1.00     77.2±3.30µs        ? ?/sec      1.31    101.5±3.68µs        ? ?/sec
contrived/01x_entities_15_systems                        1.09    106.7±7.47µs        ? ?/sec      1.00     98.1±6.71µs        ? ?/sec      1.28    125.6±6.04µs        ? ?/sec
contrived/02x_entities_03_systems                        1.00     31.9±2.23µs        ? ?/sec      1.19     38.0±3.03µs        ? ?/sec      1.43     45.4±0.78µs        ? ?/sec
contrived/02x_entities_06_systems                        1.00     64.1±2.80µs        ? ?/sec      1.04     66.8±2.94µs        ? ?/sec      1.28     81.8±1.36µs        ? ?/sec
contrived/02x_entities_09_systems                        1.00     97.0±3.87µs        ? ?/sec      1.04    101.0±8.30µs        ? ?/sec      1.24    120.6±2.02µs        ? ?/sec
contrived/02x_entities_12_systems                        1.05   136.3±10.80µs        ? ?/sec      1.00    129.2±6.63µs        ? ?/sec      1.19    153.5±3.15µs        ? ?/sec
contrived/02x_entities_15_systems                        1.06   167.3±14.58µs        ? ?/sec      1.00    157.6±8.04µs        ? ?/sec      1.20    188.5±4.40µs        ? ?/sec
contrived/03x_entities_03_systems                        1.10     47.1±4.31µs        ? ?/sec      1.00     42.7±2.85µs        ? ?/sec      1.40     59.6±1.63µs        ? ?/sec
contrived/03x_entities_06_systems                        1.00     84.2±4.66µs        ? ?/sec      1.10     92.5±7.64µs        ? ?/sec      1.30    109.7±1.01µs        ? ?/sec
contrived/03x_entities_09_systems                        1.01    137.3±8.58µs        ? ?/sec      1.00   136.4±11.06µs        ? ?/sec      1.11    150.8±2.07µs        ? ?/sec
contrived/03x_entities_12_systems                        1.11   182.9±11.47µs        ? ?/sec      1.00    164.6±6.74µs        ? ?/sec      1.18    194.8±2.54µs        ? ?/sec
contrived/03x_entities_15_systems                        1.03   216.4±12.90µs        ? ?/sec      1.00   211.0±10.75µs        ? ?/sec      1.15    242.7±3.13µs        ? ?/sec
contrived/04x_entities_03_systems                        1.07     56.5±4.58µs        ? ?/sec      1.00     52.8±3.18µs        ? ?/sec      1.34     70.9±1.86µs        ? ?/sec
contrived/04x_entities_06_systems                        1.04    112.5±7.62µs        ? ?/sec      1.00    107.8±6.78µs        ? ?/sec      1.22    131.7±3.38µs        ? ?/sec
contrived/04x_entities_09_systems                        1.08    170.9±8.41µs        ? ?/sec      1.00   158.7±12.11µs        ? ?/sec      1.22    193.9±4.54µs        ? ?/sec
contrived/04x_entities_12_systems                        1.00   219.4±13.09µs        ? ?/sec      1.04   228.4±10.87µs        ? ?/sec      1.16    254.5±8.50µs        ? ?/sec
contrived/04x_entities_15_systems                        1.09   293.6±11.85µs        ? ?/sec      1.00   269.0±15.47µs        ? ?/sec      1.13   303.4±11.23µs        ? ?/sec
contrived/05x_entities_03_systems                        1.03     70.2±5.87µs        ? ?/sec      1.00     68.1±6.48µs        ? ?/sec      1.32     89.7±5.29µs        ? ?/sec
contrived/05x_entities_06_systems                        1.00    142.2±8.39µs        ? ?/sec      1.02   145.7±12.90µs        ? ?/sec      1.10    155.7±5.13µs        ? ?/sec
contrived/05x_entities_09_systems                        1.07    199.5±9.86µs        ? ?/sec      1.00   186.1±11.30µs        ? ?/sec      1.23   228.8±11.40µs        ? ?/sec
contrived/05x_entities_12_systems                        1.00   262.5±13.92µs        ? ?/sec      1.02   267.6±14.86µs        ? ?/sec      1.09    287.0±9.03µs        ? ?/sec
contrived/05x_entities_15_systems                        1.04   329.8±15.03µs        ? ?/sec      1.00   317.6±20.28µs        ? ?/sec      1.08    344.4±9.34µs        ? ?/sec
empty_commands/0_entities                                1.00      5.2±0.03ns        ? ?/sec      1.06      5.5±0.11ns        ? ?/sec      1.01      5.2±0.15ns        ? ?/sec
empty_systems/000_systems                                1.25  1305.1±329.59ns        ? ?/sec     1.00  1041.1±123.55ns        ? ?/sec     2.78      2.9±0.31µs        ? ?/sec
empty_systems/001_systems                                1.18      5.3±0.27µs        ? ?/sec      1.13      5.1±0.32µs        ? ?/sec      1.00      4.5±0.27µs        ? ?/sec
empty_systems/002_systems                                1.06      6.7±0.25µs        ? ?/sec      1.00      6.4±0.23µs        ? ?/sec      1.04      6.6±0.37µs        ? ?/sec
empty_systems/003_systems                                1.10      7.9±0.18µs        ? ?/sec      1.00      7.2±0.33µs        ? ?/sec      1.06      7.6±0.12µs        ? ?/sec
empty_systems/004_systems                                1.15      9.1±0.37µs        ? ?/sec      1.00      7.9±0.50µs        ? ?/sec      1.07      8.5±0.14µs        ? ?/sec
empty_systems/005_systems                                1.13     10.5±0.73µs        ? ?/sec      1.00      9.3±0.60µs        ? ?/sec      1.03      9.6±0.30µs        ? ?/sec
empty_systems/010_systems                                1.11     16.4±0.92µs        ? ?/sec      1.00     14.7±0.50µs        ? ?/sec      1.00     14.7±0.47µs        ? ?/sec
empty_systems/015_systems                                1.16     21.1±1.87µs        ? ?/sec      1.00     18.1±1.63µs        ? ?/sec      1.15     20.8±0.81µs        ? ?/sec
empty_systems/020_systems                                1.14     25.8±2.04µs        ? ?/sec      1.00     22.7±1.93µs        ? ?/sec      1.17     26.5±1.01µs        ? ?/sec
empty_systems/025_systems                                1.09     29.6±2.58µs        ? ?/sec      1.00     27.1±1.65µs        ? ?/sec      1.18     31.9±1.66µs        ? ?/sec
empty_systems/030_systems                                1.16     35.6±2.34µs        ? ?/sec      1.00     30.8±2.23µs        ? ?/sec      1.21     37.3±1.35µs        ? ?/sec
empty_systems/035_systems                                1.18     40.9±2.70µs        ? ?/sec      1.00     34.6±1.86µs        ? ?/sec      1.21     41.7±1.59µs        ? ?/sec
empty_systems/040_systems                                1.19     44.9±2.88µs        ? ?/sec      1.00     37.8±2.37µs        ? ?/sec      1.24     47.0±1.54µs        ? ?/sec
empty_systems/045_systems                                1.08     45.8±4.03µs        ? ?/sec      1.00     42.3±2.59µs        ? ?/sec      1.23     52.0±1.38µs        ? ?/sec
empty_systems/050_systems                                1.08     48.5±3.60µs        ? ?/sec      1.00     45.1±3.14µs        ? ?/sec      1.26     56.9±1.35µs        ? ?/sec
empty_systems/055_systems                                1.09     52.5±2.45µs        ? ?/sec      1.00     48.2±3.78µs        ? ?/sec      1.27     61.5±1.80µs        ? ?/sec
empty_systems/060_systems                                1.12     56.8±3.75µs        ? ?/sec      1.00     50.6±5.32µs        ? ?/sec      1.33     67.2±1.97µs        ? ?/sec
empty_systems/065_systems                                1.17     59.0±5.02µs        ? ?/sec      1.00     50.6±5.10µs        ? ?/sec      1.43     72.4±2.44µs        ? ?/sec
empty_systems/070_systems                                1.16     63.2±6.10µs        ? ?/sec      1.00     54.5±5.13µs        ? ?/sec      1.41     77.0±2.94µs        ? ?/sec
empty_systems/075_systems                                1.18     68.0±5.64µs        ? ?/sec      1.00     57.8±4.84µs        ? ?/sec      1.41     81.5±3.13µs        ? ?/sec
empty_systems/080_systems                                1.16     69.6±5.17µs        ? ?/sec      1.00     60.2±4.76µs        ? ?/sec      1.49     89.5±4.39µs        ? ?/sec
empty_systems/085_systems                                1.18     75.1±4.02µs        ? ?/sec      1.00     63.7±5.42µs        ? ?/sec      1.46     92.8±4.55µs        ? ?/sec
empty_systems/090_systems                                1.11     72.7±6.76µs        ? ?/sec      1.00     65.7±5.60µs        ? ?/sec      1.49     97.6±3.64µs        ? ?/sec
empty_systems/095_systems                                1.13     80.3±5.71µs        ? ?/sec      1.00     71.2±5.05µs        ? ?/sec      1.43    102.0±4.35µs        ? ?/sec
empty_systems/100_systems                                1.19     86.7±5.55µs        ? ?/sec      1.00     72.9±6.40µs        ? ?/sec      1.49    108.8±4.75µs        ? ?/sec
for_each_iter                                            1.00     27.2±0.19ms        ? ?/sec      1.00     27.2±0.21ms        ? ?/sec      1.00     27.2±0.12ms        ? ?/sec
for_each_par_iter/threads/1                              1.01     17.5±0.81ms        ? ?/sec      1.00     17.4±0.75ms        ? ?/sec      1.00     17.4±0.69ms        ? ?/sec
for_each_par_iter/threads/16                             1.01      3.6±0.04ms        ? ?/sec      1.02      3.7±0.08ms        ? ?/sec      1.00      3.6±0.05ms        ? ?/sec
for_each_par_iter/threads/2                              1.00     17.4±0.46ms        ? ?/sec      1.00     17.5±0.75ms        ? ?/sec      1.00     17.4±0.76ms        ? ?/sec
for_each_par_iter/threads/32                             1.00      2.1±0.05ms        ? ?/sec      1.02      2.1±0.13ms        ? ?/sec      1.01      2.1±0.11ms        ? ?/sec
for_each_par_iter/threads/4                              1.00     10.3±0.31ms        ? ?/sec      1.03     10.6±0.33ms        ? ?/sec      1.00     10.3±0.26ms        ? ?/sec
for_each_par_iter/threads/8                              1.00      6.4±0.10ms        ? ?/sec      1.02      6.5±0.10ms        ? ?/sec      1.00      6.4±0.13ms        ? ?/sec
many_maps_iter                                           1.00     27.2±0.04ms        ? ?/sec      1.00     27.2±0.05ms        ? ?/sec      1.00     27.2±0.08ms        ? ?/sec
many_maps_par_iter/threads/1                             1.00     17.4±0.41ms        ? ?/sec      1.00     17.5±0.85ms        ? ?/sec      1.00     17.4±0.78ms        ? ?/sec
many_maps_par_iter/threads/16                            1.00      3.6±0.03ms        ? ?/sec      1.01      3.6±0.03ms        ? ?/sec      1.00      3.6±0.02ms        ? ?/sec
many_maps_par_iter/threads/2                             1.01     17.4±0.79ms        ? ?/sec      1.01     17.4±0.79ms        ? ?/sec      1.00     17.3±0.53ms        ? ?/sec
many_maps_par_iter/threads/32                            1.00      2.0±0.03ms        ? ?/sec      1.03      2.1±0.03ms        ? ?/sec      1.01      2.1±0.04ms        ? ?/sec
many_maps_par_iter/threads/4                             1.00     10.3±0.25ms        ? ?/sec      1.04     10.6±0.20ms        ? ?/sec      1.01     10.3±0.21ms        ? ?/sec
many_maps_par_iter/threads/8                             1.00      6.4±0.06ms        ? ?/sec      1.03      6.5±0.08ms        ? ?/sec      1.00      6.4±0.07ms        ? ?/sec
no_archetypes/system_count/0                             1.00  1344.7±192.06ns        ? ?/sec     1.48  1985.3±98.01ns        ? ?/sec      1.24  1667.1±350.82ns        ? ?/sec
no_archetypes/system_count/100                           1.02     91.8±3.44µs        ? ?/sec      1.02     92.3±3.02µs        ? ?/sec      1.00     90.2±8.51µs        ? ?/sec
no_archetypes/system_count/20                            1.20     24.4±2.15µs        ? ?/sec      1.00     20.3±0.90µs        ? ?/sec      1.24     25.2±2.06µs        ? ?/sec
no_archetypes/system_count/40                            1.10     41.0±3.19µs        ? ?/sec      1.00     37.3±0.89µs        ? ?/sec      1.20     44.7±3.64µs        ? ?/sec
no_archetypes/system_count/60                            1.04     57.7±3.59µs        ? ?/sec      1.00     55.6±1.17µs        ? ?/sec      1.11     61.7±5.90µs        ? ?/sec
no_archetypes/system_count/80                            1.00     70.4±3.55µs        ? ?/sec      1.04     73.0±1.41µs        ? ?/sec      1.04     73.2±5.51µs        ? ?/sec
overhead_par_iter/threads/1                              1.05     29.4±0.41µs        ? ?/sec      1.00     28.0±1.94µs        ? ?/sec      1.47     41.1±0.36µs        ? ?/sec
overhead_par_iter/threads/16                             3.78    107.4±2.77µs        ? ?/sec      1.00     28.5±0.76µs        ? ?/sec      2.00     56.8±5.37µs        ? ?/sec
overhead_par_iter/threads/2                              1.01     27.4±0.49µs        ? ?/sec      1.00     27.2±1.34µs        ? ?/sec      1.53     41.8±0.44µs        ? ?/sec
overhead_par_iter/threads/32                             5.37    134.4±3.28µs        ? ?/sec      1.00     25.0±0.87µs        ? ?/sec      1.87     46.9±5.71µs        ? ?/sec
overhead_par_iter/threads/4                              2.12     71.2±6.04µs        ? ?/sec      1.00     33.6±1.28µs        ? ?/sec      1.55     52.2±0.51µs        ? ?/sec
overhead_par_iter/threads/8                              3.04     71.5±4.47µs        ? ?/sec      1.00     23.5±0.97µs        ? ?/sec      2.79     65.6±0.92µs        ? ?/sec
run_criteria/no/001_systems                              1.00  1672.6±278.89ns        ? ?/sec     1.76      2.9±0.56µs        ? ?/sec      2.18      3.7±0.79µs        ? ?/sec
run_criteria/no/006_systems                              1.00  1603.0±344.76ns        ? ?/sec     1.55      2.5±0.31µs        ? ?/sec      2.90      4.7±1.77µs        ? ?/sec
run_criteria/no/011_systems                              1.00  1992.2±354.96ns        ? ?/sec     1.24      2.5±0.26µs        ? ?/sec      2.68      5.3±2.99µs        ? ?/sec
run_criteria/no/016_systems                              1.00      2.4±0.83µs        ? ?/sec      1.35      3.3±0.80µs        ? ?/sec      1.26      3.1±1.72µs        ? ?/sec
run_criteria/no/021_systems                              1.00      2.6±0.99µs        ? ?/sec      1.52      3.9±1.66µs        ? ?/sec      2.09      5.4±2.74µs        ? ?/sec
run_criteria/no/026_systems                              1.00      3.1±1.33µs        ? ?/sec      2.06      6.3±4.12µs        ? ?/sec      2.55      7.8±3.41µs        ? ?/sec
run_criteria/no/031_systems                              1.00      5.9±2.94µs        ? ?/sec      1.08      6.3±3.55µs        ? ?/sec      1.31      7.7±3.73µs        ? ?/sec
run_criteria/no/036_systems                              1.00      5.3±2.21µs        ? ?/sec      1.43      7.6±4.35µs        ? ?/sec      1.75      9.3±4.10µs        ? ?/sec
run_criteria/no/041_systems                              1.26      6.3±3.69µs        ? ?/sec      1.00      5.0±2.93µs        ? ?/sec      2.25     11.3±4.68µs        ? ?/sec
run_criteria/no/046_systems                              1.24      6.1±3.17µs        ? ?/sec      1.00      4.9±2.65µs        ? ?/sec      2.67     13.1±4.63µs        ? ?/sec
run_criteria/no/051_systems                              1.00      5.4±2.08µs        ? ?/sec      1.22      6.6±3.57µs        ? ?/sec      2.73     14.8±4.84µs        ? ?/sec
run_criteria/no/056_systems                              1.00      8.6±3.72µs        ? ?/sec      1.26     10.8±4.79µs        ? ?/sec      1.55     13.3±6.34µs        ? ?/sec
run_criteria/no/061_systems                              1.13      9.3±4.88µs        ? ?/sec      1.00      8.2±4.35µs        ? ?/sec      2.04     16.6±4.87µs        ? ?/sec
run_criteria/no/066_systems                              1.00     10.9±4.31µs        ? ?/sec      1.10     12.0±4.99µs        ? ?/sec      1.34     14.6±5.83µs        ? ?/sec
run_criteria/no/071_systems                              1.00     10.1±2.88µs        ? ?/sec      1.53     15.4±5.88µs        ? ?/sec      1.90     19.2±3.54µs        ? ?/sec
run_criteria/no/076_systems                              1.00     11.2±4.43µs        ? ?/sec      1.59     17.8±4.30µs        ? ?/sec      1.74     19.5±3.51µs        ? ?/sec
run_criteria/no/081_systems                              1.00     12.6±2.94µs        ? ?/sec      1.38     17.4±4.03µs        ? ?/sec      1.56     19.7±3.30µs        ? ?/sec
run_criteria/no/086_systems                              1.00     13.5±2.88µs        ? ?/sec      1.26     17.0±4.42µs        ? ?/sec      1.52     20.5±1.87µs        ? ?/sec
run_criteria/no/091_systems                              1.00     14.2±2.61µs        ? ?/sec      1.33     18.8±2.59µs        ? ?/sec      1.51     21.4±1.09µs        ? ?/sec
run_criteria/no/096_systems                              1.00     15.2±2.23µs        ? ?/sec      1.28     19.4±2.10µs        ? ?/sec      1.45     22.1±0.57µs        ? ?/sec
run_criteria/no/101_systems                              1.00     16.0±2.03µs        ? ?/sec      1.21     19.3±3.27µs        ? ?/sec      1.37     21.9±1.68µs        ? ?/sec
run_criteria/no_with_labels/001_systems                  1.00  1458.7±98.41ns        ? ?/sec      1.46      2.1±0.21µs        ? ?/sec      2.73      4.0±1.37µs        ? ?/sec
run_criteria/no_with_labels/006_systems                  1.00  1432.5±92.24ns        ? ?/sec      1.89      2.7±0.22µs        ? ?/sec      2.98      4.3±1.60µs        ? ?/sec
run_criteria/no_with_labels/011_systems                  1.00  1570.7±35.57ns        ? ?/sec      1.92      3.0±0.50µs        ? ?/sec      2.81      4.4±2.36µs        ? ?/sec
run_criteria/no_with_labels/016_systems                  1.00  1609.5±56.58ns        ? ?/sec      2.10      3.4±1.01µs        ? ?/sec      3.79      6.1±3.18µs        ? ?/sec
run_criteria/no_with_labels/021_systems                  1.00  1628.6±36.16ns        ? ?/sec      2.28      3.7±1.25µs        ? ?/sec      4.64      7.6±3.86µs        ? ?/sec
run_criteria/no_with_labels/026_systems                  1.00  1695.7±47.65ns        ? ?/sec      2.81      4.8±2.15µs        ? ?/sec      5.22      8.9±4.03µs        ? ?/sec
run_criteria/no_with_labels/031_systems                  1.00  1739.6±77.11ns        ? ?/sec      2.42      4.2±1.85µs        ? ?/sec      5.06      8.8±3.99µs        ? ?/sec
run_criteria/no_with_labels/036_systems                  1.00  1973.2±110.62ns        ? ?/sec     2.05      4.0±1.64µs        ? ?/sec      3.72      7.3±3.30µs        ? ?/sec
run_criteria/no_with_labels/041_systems                  1.00      2.4±0.49µs        ? ?/sec      3.00      7.3±3.33µs        ? ?/sec      2.86      6.9±3.52µs        ? ?/sec
run_criteria/no_with_labels/046_systems                  1.00      3.2±0.92µs        ? ?/sec      2.53      8.1±3.60µs        ? ?/sec      3.08      9.8±4.90µs        ? ?/sec
run_criteria/no_with_labels/051_systems                  1.00      3.3±0.68µs        ? ?/sec      2.29      7.6±3.46µs        ? ?/sec      3.41     11.3±4.80µs        ? ?/sec
run_criteria/no_with_labels/056_systems                  1.00      3.7±0.78µs        ? ?/sec      2.09      7.7±3.96µs        ? ?/sec      3.77     13.8±4.76µs        ? ?/sec
run_criteria/no_with_labels/061_systems                  1.00      4.9±1.41µs        ? ?/sec      1.75      8.5±4.26µs        ? ?/sec      2.68     13.1±5.10µs        ? ?/sec
run_criteria/no_with_labels/066_systems                  1.00      5.5±1.29µs        ? ?/sec      1.96     10.7±4.67µs        ? ?/sec      2.56     14.0±4.52µs        ? ?/sec
run_criteria/no_with_labels/071_systems                  1.00      5.9±1.60µs        ? ?/sec      2.03     11.9±5.51µs        ? ?/sec      2.65     15.6±4.91µs        ? ?/sec
run_criteria/no_with_labels/076_systems                  1.00      6.3±2.48µs        ? ?/sec      2.38     14.9±5.07µs        ? ?/sec      2.78     17.4±3.59µs        ? ?/sec
run_criteria/no_with_labels/081_systems                  1.00      6.4±2.03µs        ? ?/sec      2.01     12.9±4.99µs        ? ?/sec      2.59     16.6±3.89µs        ? ?/sec
run_criteria/no_with_labels/086_systems                  1.00      9.0±2.59µs        ? ?/sec      1.74     15.5±5.16µs        ? ?/sec      1.87     16.7±5.66µs        ? ?/sec
run_criteria/no_with_labels/091_systems                  1.00      9.0±2.69µs        ? ?/sec      1.99     17.8±4.04µs        ? ?/sec      1.78     15.9±5.56µs        ? ?/sec
run_criteria/no_with_labels/096_systems                  1.00      9.5±2.72µs        ? ?/sec      2.39     22.7±0.90µs        ? ?/sec      1.93     18.3±4.53µs        ? ?/sec
run_criteria/no_with_labels/101_systems                  1.00      9.3±2.57µs        ? ?/sec      2.03     19.0±3.62µs        ? ?/sec      2.08     19.5±3.52µs        ? ?/sec
run_criteria/yes/001_systems                             1.70      6.3±0.20µs        ? ?/sec      1.00      3.7±0.21µs        ? ?/sec      1.22      4.5±0.13µs        ? ?/sec
run_criteria/yes/006_systems                             1.54     13.1±0.76µs        ? ?/sec      1.00      8.5±0.27µs        ? ?/sec      1.29     11.0±0.75µs        ? ?/sec
run_criteria/yes/011_systems                             1.47     17.5±2.16µs        ? ?/sec      1.00     11.9±0.61µs        ? ?/sec      1.36     16.1±0.50µs        ? ?/sec
run_criteria/yes/016_systems                             1.35     21.4±2.01µs        ? ?/sec      1.00     15.8±0.53µs        ? ?/sec      1.37     21.7±0.75µs        ? ?/sec
run_criteria/yes/021_systems                             1.32     26.1±2.87µs        ? ?/sec      1.00     19.9±0.85µs        ? ?/sec      1.34     26.7±0.73µs        ? ?/sec
run_criteria/yes/026_systems                             1.29     31.7±2.76µs        ? ?/sec      1.00     24.7±0.97µs        ? ?/sec      1.32     32.5±1.04µs        ? ?/sec
run_criteria/yes/031_systems                             1.27     34.9±3.01µs        ? ?/sec      1.00     27.5±1.86µs        ? ?/sec      1.34     37.0±1.46µs        ? ?/sec
run_criteria/yes/036_systems                             1.26     40.1±3.91µs        ? ?/sec      1.00     31.9±1.18µs        ? ?/sec      1.26     40.2±1.53µs        ? ?/sec
run_criteria/yes/041_systems                             1.23     44.6±4.73µs        ? ?/sec      1.00     36.2±1.34µs        ? ?/sec      1.26     45.5±1.61µs        ? ?/sec
run_criteria/yes/046_systems                             1.21     48.5±4.81µs        ? ?/sec      1.00     40.2±1.11µs        ? ?/sec      1.23     49.4±1.73µs        ? ?/sec
run_criteria/yes/051_systems                             1.15     51.1±5.12µs        ? ?/sec      1.00     44.6±1.20µs        ? ?/sec      1.24     55.2±1.62µs        ? ?/sec
run_criteria/yes/056_systems                             1.18     56.3±3.74µs        ? ?/sec      1.00     47.7±1.29µs        ? ?/sec      1.29     61.3±2.19µs        ? ?/sec
run_criteria/yes/061_systems                             1.09     56.8±5.14µs        ? ?/sec      1.00     51.9±1.38µs        ? ?/sec      1.24     64.1±2.72µs        ? ?/sec
run_criteria/yes/066_systems                             1.09     60.8±7.52µs        ? ?/sec      1.00     55.7±1.44µs        ? ?/sec      1.28     71.1±1.84µs        ? ?/sec
run_criteria/yes/071_systems                             1.06     64.3±7.58µs        ? ?/sec      1.00     60.4±1.96µs        ? ?/sec      1.27     76.6±2.25µs        ? ?/sec
run_criteria/yes/076_systems                             1.10     69.7±5.99µs        ? ?/sec      1.00     63.5±2.26µs        ? ?/sec      1.33     84.6±2.67µs        ? ?/sec
run_criteria/yes/081_systems                             1.05     70.7±5.17µs        ? ?/sec      1.00     67.1±1.92µs        ? ?/sec      1.29     86.7±3.25µs        ? ?/sec
run_criteria/yes/086_systems                             1.08     76.6±6.80µs        ? ?/sec      1.00     70.8±2.83µs        ? ?/sec      1.28     90.9±2.41µs        ? ?/sec
run_criteria/yes/091_systems                             1.03     78.7±7.42µs        ? ?/sec      1.00     76.0±2.81µs        ? ?/sec      1.29     98.0±2.98µs        ? ?/sec
run_criteria/yes/096_systems                             1.00     78.0±6.09µs        ? ?/sec      1.04     81.1±2.89µs        ? ?/sec      1.31    101.8±3.64µs        ? ?/sec
run_criteria/yes/101_systems                             1.02     86.3±8.22µs        ? ?/sec      1.00     84.5±3.39µs        ? ?/sec      1.27    107.7±4.71µs        ? ?/sec
run_criteria/yes_using_query/001_systems                 1.60      6.1±0.23µs        ? ?/sec      1.00      3.8±0.13µs        ? ?/sec      1.18      4.5±0.22µs        ? ?/sec
run_criteria/yes_using_query/006_systems                 1.50     12.9±0.91µs        ? ?/sec      1.00      8.6±0.37µs        ? ?/sec      1.21     10.4±0.54µs        ? ?/sec
run_criteria/yes_using_query/011_systems                 1.46     18.4±1.82µs        ? ?/sec      1.00     12.6±0.63µs        ? ?/sec      1.28     16.1±0.61µs        ? ?/sec
run_criteria/yes_using_query/016_systems                 1.38     22.6±1.84µs        ? ?/sec      1.00     16.3±0.71µs        ? ?/sec      1.37     22.4±0.99µs        ? ?/sec
run_criteria/yes_using_query/021_systems                 1.38     27.9±1.84µs        ? ?/sec      1.00     20.3±1.07µs        ? ?/sec      1.37     27.7±0.86µs        ? ?/sec
run_criteria/yes_using_query/026_systems                 1.32     32.0±2.45µs        ? ?/sec      1.00     24.2±0.98µs        ? ?/sec      1.34     32.5±1.26µs        ? ?/sec
run_criteria/yes_using_query/031_systems                 1.28     36.8±2.62µs        ? ?/sec      1.00     28.7±1.26µs        ? ?/sec      1.26     36.2±1.13µs        ? ?/sec
run_criteria/yes_using_query/036_systems                 1.29     42.0±3.39µs        ? ?/sec      1.00     32.5±1.31µs        ? ?/sec      1.26     41.1±1.15µs        ? ?/sec
run_criteria/yes_using_query/041_systems                 1.29     46.6±3.32µs        ? ?/sec      1.00     36.2±1.66µs        ? ?/sec      1.30     46.9±1.13µs        ? ?/sec
run_criteria/yes_using_query/046_systems                 1.22     48.3±3.56µs        ? ?/sec      1.00     39.7±1.25µs        ? ?/sec      1.26     50.1±1.17µs        ? ?/sec
run_criteria/yes_using_query/051_systems                 1.23     53.6±2.80µs        ? ?/sec      1.00     43.4±1.48µs        ? ?/sec      1.27     55.3±1.60µs        ? ?/sec
run_criteria/yes_using_query/056_systems                 1.15     56.0±3.18µs        ? ?/sec      1.00     48.5±1.58µs        ? ?/sec      1.23     59.7±1.97µs        ? ?/sec
run_criteria/yes_using_query/061_systems                 1.19     61.4±4.46µs        ? ?/sec      1.00     51.8±2.32µs        ? ?/sec      1.25     64.8±1.76µs        ? ?/sec
run_criteria/yes_using_query/066_systems                 1.10     61.0±4.98µs        ? ?/sec      1.00     55.6±2.17µs        ? ?/sec      1.25     69.8±2.24µs        ? ?/sec
run_criteria/yes_using_query/071_systems                 1.09     64.4±5.47µs        ? ?/sec      1.00     58.9±2.33µs        ? ?/sec      1.28     75.1±2.60µs        ? ?/sec
run_criteria/yes_using_query/076_systems                 1.11     70.2±4.60µs        ? ?/sec      1.00     62.9±3.02µs        ? ?/sec      1.27     80.2±3.30µs        ? ?/sec
run_criteria/yes_using_query/081_systems                 1.13     74.0±6.38µs        ? ?/sec      1.00     65.7±3.12µs        ? ?/sec      1.34     87.7±3.82µs        ? ?/sec
run_criteria/yes_using_query/086_systems                 1.04     74.6±6.12µs        ? ?/sec      1.00     71.4±4.13µs        ? ?/sec      1.30     93.0±4.03µs        ? ?/sec
run_criteria/yes_using_query/091_systems                 1.11     82.3±5.30µs        ? ?/sec      1.00     74.4±3.26µs        ? ?/sec      1.32     98.2±3.84µs        ? ?/sec
run_criteria/yes_using_query/096_systems                 1.01     83.1±6.00µs        ? ?/sec      1.00     82.3±4.09µs        ? ?/sec      1.21     99.1±4.93µs        ? ?/sec
run_criteria/yes_using_query/101_systems                 1.15     97.0±5.63µs        ? ?/sec      1.00     84.2±3.37µs        ? ?/sec      1.22    103.0±5.28µs        ? ?/sec
run_criteria/yes_using_resource/001_systems              1.68      6.2±0.58µs        ? ?/sec      1.00      3.7±0.20µs        ? ?/sec      1.23      4.6±0.16µs        ? ?/sec
run_criteria/yes_using_resource/006_systems              1.50     13.0±0.83µs        ? ?/sec      1.00      8.7±0.20µs        ? ?/sec      1.29     11.2±0.38µs        ? ?/sec
run_criteria/yes_using_resource/011_systems              1.41     18.1±1.55µs        ? ?/sec      1.00     12.9±0.46µs        ? ?/sec      1.31     16.8±0.65µs        ? ?/sec
run_criteria/yes_using_resource/016_systems              1.35     22.6±1.37µs        ? ?/sec      1.00     16.8±0.58µs        ? ?/sec      1.31     22.1±1.04µs        ? ?/sec
run_criteria/yes_using_resource/021_systems              1.34     28.1±2.08µs        ? ?/sec      1.00     20.9±0.75µs        ? ?/sec      1.30     27.2±0.85µs        ? ?/sec
run_criteria/yes_using_resource/026_systems              1.29     32.5±1.75µs        ? ?/sec      1.00     25.1±0.93µs        ? ?/sec      1.29     32.4±1.50µs        ? ?/sec
run_criteria/yes_using_resource/031_systems              1.30     37.8±1.93µs        ? ?/sec      1.00     29.1±0.84µs        ? ?/sec      1.26     36.6±1.23µs        ? ?/sec
run_criteria/yes_using_resource/036_systems              1.26     42.1±1.87µs        ? ?/sec      1.00     33.3±1.34µs        ? ?/sec      1.26     41.9±1.56µs        ? ?/sec
run_criteria/yes_using_resource/041_systems              1.27     46.3±2.02µs        ? ?/sec      1.00     36.4±1.34µs        ? ?/sec      1.25     45.3±1.23µs        ? ?/sec
run_criteria/yes_using_resource/046_systems              1.22     49.5±2.85µs        ? ?/sec      1.00     40.5±1.31µs        ? ?/sec      1.24     50.1±1.26µs        ? ?/sec
run_criteria/yes_using_resource/051_systems              1.23     54.2±3.91µs        ? ?/sec      1.00     44.2±1.20µs        ? ?/sec      1.28     56.4±1.72µs        ? ?/sec
run_criteria/yes_using_resource/056_systems              1.18     55.7±4.46µs        ? ?/sec      1.00     47.1±2.40µs        ? ?/sec      1.28     60.1±1.90µs        ? ?/sec
run_criteria/yes_using_resource/061_systems              1.16     59.5±4.04µs        ? ?/sec      1.00     51.4±1.97µs        ? ?/sec      1.25     64.2±2.66µs        ? ?/sec
run_criteria/yes_using_resource/066_systems              1.13     62.5±3.71µs        ? ?/sec      1.00     55.2±2.12µs        ? ?/sec      1.23     67.9±3.32µs        ? ?/sec
run_criteria/yes_using_resource/071_systems              1.16     68.2±3.67µs        ? ?/sec      1.00     58.8±2.72µs        ? ?/sec      1.26     73.9±3.17µs        ? ?/sec
run_criteria/yes_using_resource/076_systems              1.17     75.1±4.35µs        ? ?/sec      1.00     64.0±3.40µs        ? ?/sec      1.22     77.9±3.33µs        ? ?/sec
run_criteria/yes_using_resource/081_systems              1.10     74.8±5.37µs        ? ?/sec      1.00     68.1±2.01µs        ? ?/sec      1.21     82.7±3.07µs        ? ?/sec
run_criteria/yes_using_resource/086_systems              1.16     83.4±4.33µs        ? ?/sec      1.00     72.0±2.20µs        ? ?/sec      1.26     90.8±3.12µs        ? ?/sec
run_criteria/yes_using_resource/091_systems              1.12     85.6±6.07µs        ? ?/sec      1.00     76.3±3.38µs        ? ?/sec      1.26     95.8±4.57µs        ? ?/sec
run_criteria/yes_using_resource/096_systems              1.08     87.3±8.66µs        ? ?/sec      1.00     80.5±2.98µs        ? ?/sec      1.26    101.3±5.77µs        ? ?/sec
run_criteria/yes_using_resource/101_systems              1.01     86.3±8.84µs        ? ?/sec      1.00     85.6±3.18µs        ? ?/sec      1.21    103.9±5.14µs        ? ?/sec
run_criteria/yes_with_labels/001_systems                 1.67      6.1±0.34µs        ? ?/sec      1.00      3.7±0.19µs        ? ?/sec      1.24      4.6±0.32µs        ? ?/sec
run_criteria/yes_with_labels/006_systems                 1.39     12.3±0.66µs        ? ?/sec      1.00      8.9±0.20µs        ? ?/sec      1.16     10.3±0.43µs        ? ?/sec
run_criteria/yes_with_labels/011_systems                 1.36     17.8±1.33µs        ? ?/sec      1.00     13.2±0.43µs        ? ?/sec      1.21     15.9±0.63µs        ? ?/sec
run_criteria/yes_with_labels/016_systems                 1.34     22.2±1.87µs        ? ?/sec      1.00     16.6±2.19µs        ? ?/sec      1.30     21.5±0.96µs        ? ?/sec
run_criteria/yes_with_labels/021_systems                 1.30     27.9±2.29µs        ? ?/sec      1.00     21.4±0.89µs        ? ?/sec      1.25     26.8±1.06µs        ? ?/sec
run_criteria/yes_with_labels/026_systems                 1.26     32.2±1.75µs        ? ?/sec      1.00     25.6±1.05µs        ? ?/sec      1.24     31.7±1.72µs        ? ?/sec
run_criteria/yes_with_labels/031_systems                 1.28     37.0±2.08µs        ? ?/sec      1.00     28.8±1.61µs        ? ?/sec      1.28     36.9±1.75µs        ? ?/sec
run_criteria/yes_with_labels/036_systems                 1.23     40.1±2.94µs        ? ?/sec      1.00     32.5±1.25µs        ? ?/sec      1.30     42.1±1.27µs        ? ?/sec
run_criteria/yes_with_labels/041_systems                 1.22     44.4±3.34µs        ? ?/sec      1.00     36.3±1.49µs        ? ?/sec      1.25     45.3±1.64µs        ? ?/sec
run_criteria/yes_with_labels/046_systems                 1.26     49.6±3.21µs        ? ?/sec      1.00     39.4±1.46µs        ? ?/sec      1.26     49.8±1.51µs        ? ?/sec
run_criteria/yes_with_labels/051_systems                 1.19     53.3±3.02µs        ? ?/sec      1.00     44.8±1.33µs        ? ?/sec      1.28     57.5±2.89µs        ? ?/sec
run_criteria/yes_with_labels/056_systems                 1.22     57.5±3.33µs        ? ?/sec      1.00     47.2±1.82µs        ? ?/sec      1.29     61.0±2.47µs        ? ?/sec
run_criteria/yes_with_labels/061_systems                 1.21     62.2±3.21µs        ? ?/sec      1.00     51.5±2.06µs        ? ?/sec      1.27     65.6±2.49µs        ? ?/sec
run_criteria/yes_with_labels/066_systems                 1.21     68.0±3.15µs        ? ?/sec      1.00     56.2±2.04µs        ? ?/sec      1.23     69.1±3.12µs        ? ?/sec
run_criteria/yes_with_labels/071_systems                 1.23     73.1±2.66µs        ? ?/sec      1.00     59.3±1.52µs        ? ?/sec      1.25     74.4±2.56µs        ? ?/sec
run_criteria/yes_with_labels/076_systems                 1.19     74.9±3.39µs        ? ?/sec      1.00     63.0±1.99µs        ? ?/sec      1.26     79.2±3.34µs        ? ?/sec
run_criteria/yes_with_labels/081_systems                 1.24     81.8±3.07µs        ? ?/sec      1.00     66.1±2.04µs        ? ?/sec      1.28     84.9±3.09µs        ? ?/sec
run_criteria/yes_with_labels/086_systems                 1.20     84.4±4.59µs        ? ?/sec      1.00     70.2±1.81µs        ? ?/sec      1.27     89.2±4.24µs        ? ?/sec
run_criteria/yes_with_labels/091_systems                 1.10     82.7±6.82µs        ? ?/sec      1.00     74.9±2.17µs        ? ?/sec      1.26     94.8±3.63µs        ? ?/sec
run_criteria/yes_with_labels/096_systems                 1.16     95.4±4.42µs        ? ?/sec      1.00     82.3±2.73µs        ? ?/sec      1.26    104.1±3.82µs        ? ?/sec
run_criteria/yes_with_labels/101_systems                 1.09     90.9±5.73µs        ? ?/sec      1.00     83.7±2.77µs        ? ?/sec      1.30    108.6±3.97µs        ? ?/sec
schedule/base                                            1.00     30.4±2.49µs        ? ?/sec      1.20     36.4±2.35µs        ? ?/sec      1.03     31.3±2.54µs        ? ?/sec

Comparing main and the final results so far:
group                                                    main                                     no-active
-----                                                    ----                                     ---------
add_remove_component_big/table                           1.02      3.2±0.18ms        ? ?/sec      1.00      3.1±0.10ms        ? ?/sec
added_archetypes/archetype_count/100                     8.30  1294.4±47.68µs        ? ?/sec      1.00    155.9±9.91µs        ? ?/sec
added_archetypes/archetype_count/1000                    2.82  1957.3±133.68µs        ? ?/sec     1.00   694.9±10.82µs        ? ?/sec
added_archetypes/archetype_count/10000                   1.51     17.1±1.46ms        ? ?/sec      1.00     11.3±1.35ms        ? ?/sec
added_archetypes/archetype_count/200                     6.50  1335.0±33.66µs        ? ?/sec      1.00    205.4±7.75µs        ? ?/sec
added_archetypes/archetype_count/2000                    3.02      4.1±0.21ms        ? ?/sec      1.00  1359.5±28.68µs        ? ?/sec
added_archetypes/archetype_count/500                     4.11  1585.0±71.94µs        ? ?/sec      1.00   385.6±12.41µs        ? ?/sec
added_archetypes/archetype_count/5000                    2.35      8.6±0.98ms        ? ?/sec      1.00      3.7±0.18ms        ? ?/sec
busy_systems/01x_entities_03_systems                     1.14     40.4±2.52µs        ? ?/sec      1.00     35.5±2.31µs        ? ?/sec
busy_systems/01x_entities_06_systems                     1.19     79.0±3.66µs        ? ?/sec      1.00     66.1±3.30µs        ? ?/sec
busy_systems/01x_entities_09_systems                     1.30    125.5±6.04µs        ? ?/sec      1.00     96.9±5.60µs        ? ?/sec
busy_systems/01x_entities_12_systems                     1.18    153.4±7.77µs        ? ?/sec      1.00    129.5±6.13µs        ? ?/sec
busy_systems/01x_entities_15_systems                     1.16    187.9±6.60µs        ? ?/sec      1.00    162.6±8.61µs        ? ?/sec
busy_systems/02x_entities_03_systems                     1.14     74.4±3.74µs        ? ?/sec      1.00     65.1±3.38µs        ? ?/sec
busy_systems/02x_entities_06_systems                     1.14    140.7±8.57µs        ? ?/sec      1.00    123.7±5.12µs        ? ?/sec
busy_systems/02x_entities_09_systems                     1.23    217.6±8.97µs        ? ?/sec      1.00    176.7±7.50µs        ? ?/sec
busy_systems/02x_entities_12_systems                     1.18   278.7±11.11µs        ? ?/sec      1.00    237.0±9.99µs        ? ?/sec
busy_systems/02x_entities_15_systems                     1.15   340.7±20.27µs        ? ?/sec      1.00   296.2±15.90µs        ? ?/sec
busy_systems/03x_entities_03_systems                     1.15    105.7±6.43µs        ? ?/sec      1.00     91.8±5.73µs        ? ?/sec
busy_systems/03x_entities_06_systems                     1.29   224.8±13.17µs        ? ?/sec      1.00    174.5±7.36µs        ? ?/sec
busy_systems/03x_entities_09_systems                     1.30   327.2±13.83µs        ? ?/sec      1.00   252.1±14.62µs        ? ?/sec
busy_systems/03x_entities_12_systems                     1.27   420.3±15.97µs        ? ?/sec      1.00   329.8±13.39µs        ? ?/sec
busy_systems/03x_entities_15_systems                     1.15   484.9±18.26µs        ? ?/sec      1.00   420.4±23.64µs        ? ?/sec
busy_systems/04x_entities_03_systems                     1.05    135.7±8.19µs        ? ?/sec      1.00    129.0±7.04µs        ? ?/sec
busy_systems/04x_entities_06_systems                     1.29   294.1±11.13µs        ? ?/sec      1.00   228.4±11.49µs        ? ?/sec
busy_systems/04x_entities_09_systems                     1.25   434.4±19.06µs        ? ?/sec      1.00   347.0±33.66µs        ? ?/sec
busy_systems/04x_entities_12_systems                     1.22   537.1±31.11µs        ? ?/sec      1.00   438.9±15.06µs        ? ?/sec
busy_systems/04x_entities_15_systems                     1.14   625.7±30.09µs        ? ?/sec      1.00   548.6±17.30µs        ? ?/sec
busy_systems/05x_entities_03_systems                     1.22   176.1±12.71µs        ? ?/sec      1.00    144.2±5.23µs        ? ?/sec
busy_systems/05x_entities_06_systems                     1.24   352.2±26.54µs        ? ?/sec      1.00   284.4±13.21µs        ? ?/sec
busy_systems/05x_entities_09_systems                     1.29   547.8±22.79µs        ? ?/sec      1.00   425.6±22.15µs        ? ?/sec
busy_systems/05x_entities_12_systems                     1.20   683.8±48.92µs        ? ?/sec      1.00   567.9±26.21µs        ? ?/sec
busy_systems/05x_entities_15_systems                     1.24   867.3±42.16µs        ? ?/sec      1.00   698.0±43.16µs        ? ?/sec
contrived/01x_entities_03_systems                        1.10     28.2±0.70µs        ? ?/sec      1.00     25.6±2.88µs        ? ?/sec
contrived/01x_entities_06_systems                        1.17     52.6±2.18µs        ? ?/sec      1.00     44.9±3.41µs        ? ?/sec
contrived/01x_entities_09_systems                        1.33     78.4±4.73µs        ? ?/sec      1.00     58.8±3.08µs        ? ?/sec
contrived/01x_entities_12_systems                        1.32    101.5±6.61µs        ? ?/sec      1.00     77.2±3.30µs        ? ?/sec
contrived/01x_entities_15_systems                        1.27    125.0±5.25µs        ? ?/sec      1.00     98.1±6.71µs        ? ?/sec
contrived/02x_entities_03_systems                        1.09     41.6±1.53µs        ? ?/sec      1.00     38.0±3.03µs        ? ?/sec
contrived/02x_entities_06_systems                        1.21     81.1±2.24µs        ? ?/sec      1.00     66.8±2.94µs        ? ?/sec
contrived/02x_entities_09_systems                        1.15    116.2±5.09µs        ? ?/sec      1.00    101.0±8.30µs        ? ?/sec
contrived/02x_entities_12_systems                        1.16    149.3±4.09µs        ? ?/sec      1.00    129.2±6.63µs        ? ?/sec
contrived/02x_entities_15_systems                        1.21    191.2±8.23µs        ? ?/sec      1.00    157.6±8.04µs        ? ?/sec
contrived/03x_entities_03_systems                        1.32     56.3±2.24µs        ? ?/sec      1.00     42.7±2.85µs        ? ?/sec
contrived/03x_entities_06_systems                        1.21    111.7±5.10µs        ? ?/sec      1.00     92.5±7.64µs        ? ?/sec
contrived/03x_entities_09_systems                        1.10    149.9±5.70µs        ? ?/sec      1.00   136.4±11.06µs        ? ?/sec
contrived/03x_entities_12_systems                        1.21    198.6±7.92µs        ? ?/sec      1.00    164.6±6.74µs        ? ?/sec
contrived/03x_entities_15_systems                        1.15    242.0±9.53µs        ? ?/sec      1.00   211.0±10.75µs        ? ?/sec
contrived/04x_entities_03_systems                        1.28     67.7±3.02µs        ? ?/sec      1.00     52.8±3.18µs        ? ?/sec
contrived/04x_entities_06_systems                        1.27    136.9±6.27µs        ? ?/sec      1.00    107.8±6.78µs        ? ?/sec
contrived/04x_entities_09_systems                        1.20    190.6±5.42µs        ? ?/sec      1.00   158.7±12.11µs        ? ?/sec
contrived/04x_entities_12_systems                        1.05    238.8±6.75µs        ? ?/sec      1.00   228.4±10.87µs        ? ?/sec
contrived/04x_entities_15_systems                        1.08    290.7±8.65µs        ? ?/sec      1.00   269.0±15.47µs        ? ?/sec
contrived/05x_entities_03_systems                        1.30     88.5±3.29µs        ? ?/sec      1.00     68.1±6.48µs        ? ?/sec
contrived/05x_entities_06_systems                        1.09    158.7±5.37µs        ? ?/sec      1.00   145.7±12.90µs        ? ?/sec
contrived/05x_entities_09_systems                        1.23   229.2±13.21µs        ? ?/sec      1.00   186.1±11.30µs        ? ?/sec
contrived/05x_entities_12_systems                        1.07    285.3±6.02µs        ? ?/sec      1.00   267.6±14.86µs        ? ?/sec
contrived/05x_entities_15_systems                        1.09   345.2±14.09µs        ? ?/sec      1.00   317.6±20.28µs        ? ?/sec
empty_commands/0_entities                                1.00      5.2±0.06ns        ? ?/sec      1.06      5.5±0.11ns        ? ?/sec
empty_systems/000_systems                                2.49      2.6±0.16µs        ? ?/sec      1.00  1041.1±123.55ns        ? ?/sec
empty_systems/001_systems                                1.00      4.3±0.37µs        ? ?/sec      1.18      5.1±0.32µs        ? ?/sec
empty_systems/002_systems                                1.00      5.8±0.15µs        ? ?/sec      1.10      6.4±0.23µs        ? ?/sec
empty_systems/003_systems                                1.01      7.2±0.22µs        ? ?/sec      1.00      7.2±0.33µs        ? ?/sec
empty_systems/004_systems                                1.04      8.2±0.33µs        ? ?/sec      1.00      7.9±0.50µs        ? ?/sec
empty_systems/005_systems                                1.00      9.1±0.35µs        ? ?/sec      1.02      9.3±0.60µs        ? ?/sec
empty_systems/010_systems                                1.00     13.8±0.67µs        ? ?/sec      1.07     14.7±0.50µs        ? ?/sec
empty_systems/015_systems                                1.06     19.3±1.23µs        ? ?/sec      1.00     18.1±1.63µs        ? ?/sec
empty_systems/020_systems                                1.11     25.1±1.17µs        ? ?/sec      1.00     22.7±1.93µs        ? ?/sec
empty_systems/025_systems                                1.06     28.6±1.05µs        ? ?/sec      1.00     27.1±1.65µs        ? ?/sec
empty_systems/030_systems                                1.09     33.6±1.15µs        ? ?/sec      1.00     30.8±2.23µs        ? ?/sec
empty_systems/035_systems                                1.13     39.1±1.45µs        ? ?/sec      1.00     34.6±1.86µs        ? ?/sec
empty_systems/040_systems                                1.15     43.4±1.68µs        ? ?/sec      1.00     37.8±2.37µs        ? ?/sec
empty_systems/045_systems                                1.12     47.3±2.25µs        ? ?/sec      1.00     42.3±2.59µs        ? ?/sec
empty_systems/050_systems                                1.16     52.1±2.34µs        ? ?/sec      1.00     45.1±3.14µs        ? ?/sec
empty_systems/055_systems                                1.19     57.2±2.15µs        ? ?/sec      1.00     48.2±3.78µs        ? ?/sec
empty_systems/060_systems                                1.20     60.6±1.82µs        ? ?/sec      1.00     50.6±5.32µs        ? ?/sec
empty_systems/065_systems                                1.27     64.1±2.33µs        ? ?/sec      1.00     50.6±5.10µs        ? ?/sec
empty_systems/070_systems                                1.30     70.9±2.74µs        ? ?/sec      1.00     54.5±5.13µs        ? ?/sec
empty_systems/075_systems                                1.31     75.8±2.61µs        ? ?/sec      1.00     57.8±4.84µs        ? ?/sec
empty_systems/080_systems                                1.31     79.0±3.53µs        ? ?/sec      1.00     60.2±4.76µs        ? ?/sec
empty_systems/085_systems                                1.33     84.5±2.59µs        ? ?/sec      1.00     63.7±5.42µs        ? ?/sec
empty_systems/090_systems                                1.34     87.8±3.49µs        ? ?/sec      1.00     65.7±5.60µs        ? ?/sec
empty_systems/095_systems                                1.33     95.0±3.56µs        ? ?/sec      1.00     71.2±5.05µs        ? ?/sec
empty_systems/100_systems                                1.36     99.4±4.07µs        ? ?/sec      1.00     72.9±6.40µs        ? ?/sec
for_each_iter                                            1.00     27.3±0.53ms        ? ?/sec      1.00     27.2±0.21ms        ? ?/sec
for_each_par_iter/threads/1                              2.01     34.9±2.70ms        ? ?/sec      1.00     17.4±0.75ms        ? ?/sec
for_each_par_iter/threads/16                             1.31      4.8±0.21ms        ? ?/sec      1.00      3.7±0.08ms        ? ?/sec
for_each_par_iter/threads/2                              1.20     21.0±0.71ms        ? ?/sec      1.00     17.5±0.75ms        ? ?/sec
for_each_par_iter/threads/32                             2.32      5.0±0.08ms        ? ?/sec      1.00      2.1±0.13ms        ? ?/sec
for_each_par_iter/threads/4                              1.23     13.1±0.89ms        ? ?/sec      1.00     10.6±0.33ms        ? ?/sec
for_each_par_iter/threads/8                              1.18      7.6±0.35ms        ? ?/sec      1.00      6.5±0.10ms        ? ?/sec
heavy_compute/base                                       1.02    365.4±7.09µs        ? ?/sec      1.00    357.8±4.55µs        ? ?/sec
many_maps_iter                                           1.00     27.2±0.14ms        ? ?/sec      1.00     27.2±0.05ms        ? ?/sec
many_maps_par_iter/threads/1                             1.01     17.6±1.18ms        ? ?/sec      1.00     17.5±0.85ms        ? ?/sec
many_maps_par_iter/threads/16                            1.00      2.2±0.05ms        ? ?/sec      1.62      3.6±0.03ms        ? ?/sec
many_maps_par_iter/threads/2                             1.00     10.5±0.40ms        ? ?/sec      1.66     17.4±0.79ms        ? ?/sec
many_maps_par_iter/threads/32                            1.00      2.1±0.03ms        ? ?/sec      1.01      2.1±0.03ms        ? ?/sec
many_maps_par_iter/threads/4                             1.00      6.5±0.20ms        ? ?/sec      1.64     10.6±0.20ms        ? ?/sec
many_maps_par_iter/threads/8                             1.00      3.7±0.08ms        ? ?/sec      1.78      6.5±0.08ms        ? ?/sec
no_archetypes/system_count/0                             1.00  1523.0±314.34ns        ? ?/sec     1.30  1985.3±98.01ns        ? ?/sec
no_archetypes/system_count/100                           1.08     99.5±5.50µs        ? ?/sec      1.00     92.3±3.02µs        ? ?/sec
no_archetypes/system_count/20                            1.20     24.3±1.58µs        ? ?/sec      1.00     20.3±0.90µs        ? ?/sec
no_archetypes/system_count/40                            1.11     41.4±2.24µs        ? ?/sec      1.00     37.3±0.89µs        ? ?/sec
no_archetypes/system_count/60                            1.15     64.0±3.55µs        ? ?/sec      1.00     55.6±1.17µs        ? ?/sec
no_archetypes/system_count/80                            1.11     81.1±4.90µs        ? ?/sec      1.00     73.0±1.41µs        ? ?/sec
overhead_par_iter/threads/1                              1.64     45.9±3.65µs        ? ?/sec      1.00     28.0±1.94µs        ? ?/sec
overhead_par_iter/threads/16                             2.87     81.8±7.66µs        ? ?/sec      1.00     28.5±0.76µs        ? ?/sec
overhead_par_iter/threads/2                              1.95     53.0±2.80µs        ? ?/sec      1.00     27.2±1.34µs        ? ?/sec
overhead_par_iter/threads/32                             3.44     86.2±2.74µs        ? ?/sec      1.00     25.0±0.87µs        ? ?/sec
overhead_par_iter/threads/4                              2.09     70.2±4.63µs        ? ?/sec      1.00     33.6±1.28µs        ? ?/sec
overhead_par_iter/threads/8                              3.56     83.8±4.04µs        ? ?/sec      1.00     23.5±0.97µs        ? ?/sec
run_criteria/no/001_systems                              1.00  1429.0±128.56ns        ? ?/sec     2.05      2.9±0.56µs        ? ?/sec
run_criteria/no/006_systems                              1.00  1880.9±138.02ns        ? ?/sec     1.32      2.5±0.31µs        ? ?/sec
run_criteria/no/011_systems                              1.00  1567.0±52.07ns        ? ?/sec      1.58      2.5±0.26µs        ? ?/sec
run_criteria/no/016_systems                              1.00  1626.9±141.83ns        ? ?/sec     2.03      3.3±0.80µs        ? ?/sec
run_criteria/no/021_systems                              1.00  1700.6±43.36ns        ? ?/sec      2.32      3.9±1.66µs        ? ?/sec
run_criteria/no/026_systems                              1.00  1852.0±46.34ns        ? ?/sec      3.41      6.3±4.12µs        ? ?/sec
run_criteria/no/031_systems                              1.00  1970.4±65.72ns        ? ?/sec      3.21      6.3±3.55µs        ? ?/sec
run_criteria/no/036_systems                              1.00      2.1±0.08µs        ? ?/sec      3.55      7.6±4.35µs        ? ?/sec
run_criteria/no/041_systems                              1.00      2.3±0.10µs        ? ?/sec      2.16      5.0±2.93µs        ? ?/sec
run_criteria/no/046_systems                              1.00      2.4±0.08µs        ? ?/sec      2.01      4.9±2.65µs        ? ?/sec
run_criteria/no/051_systems                              1.00      3.0±0.52µs        ? ?/sec      2.18      6.6±3.57µs        ? ?/sec
run_criteria/no/056_systems                              1.00      3.6±0.79µs        ? ?/sec      2.97     10.8±4.79µs        ? ?/sec
run_criteria/no/061_systems                              1.00      4.3±1.09µs        ? ?/sec      1.89      8.2±4.35µs        ? ?/sec
run_criteria/no/066_systems                              1.00      5.3±1.11µs        ? ?/sec      2.27     12.0±4.99µs        ? ?/sec
run_criteria/no/071_systems                              1.00      4.6±1.34µs        ? ?/sec      3.34     15.4±5.88µs        ? ?/sec
run_criteria/no/076_systems                              1.00      5.9±1.78µs        ? ?/sec      3.00     17.8±4.30µs        ? ?/sec
run_criteria/no/081_systems                              1.00      7.5±2.08µs        ? ?/sec      2.31     17.4±4.03µs        ? ?/sec
run_criteria/no/086_systems                              1.00     11.0±2.36µs        ? ?/sec      1.55     17.0±4.42µs        ? ?/sec
run_criteria/no/091_systems                              1.00     12.3±1.90µs        ? ?/sec      1.53     18.8±2.59µs        ? ?/sec
run_criteria/no/096_systems                              1.00     13.0±1.64µs        ? ?/sec      1.49     19.4±2.10µs        ? ?/sec
run_criteria/no/101_systems                              1.00     15.5±1.61µs        ? ?/sec      1.25     19.3±3.27µs        ? ?/sec
run_criteria/no_with_labels/001_systems                  1.00  1342.6±55.58ns        ? ?/sec      1.59      2.1±0.21µs        ? ?/sec
run_criteria/no_with_labels/006_systems                  1.00  1840.7±158.89ns        ? ?/sec     1.47      2.7±0.22µs        ? ?/sec
run_criteria/no_with_labels/011_systems                  1.00  1561.0±101.44ns        ? ?/sec     1.93      3.0±0.50µs        ? ?/sec
run_criteria/no_with_labels/016_systems                  1.00  1450.3±69.17ns        ? ?/sec      2.33      3.4±1.01µs        ? ?/sec
run_criteria/no_with_labels/021_systems                  1.00  1790.6±140.99ns        ? ?/sec     2.07      3.7±1.25µs        ? ?/sec
run_criteria/no_with_labels/026_systems                  1.00  1691.0±39.38ns        ? ?/sec      2.81      4.8±2.15µs        ? ?/sec
run_criteria/no_with_labels/031_systems                  1.00  1806.5±106.99ns        ? ?/sec     2.33      4.2±1.85µs        ? ?/sec
run_criteria/no_with_labels/036_systems                  1.00      2.0±0.12µs        ? ?/sec      1.98      4.0±1.64µs        ? ?/sec
run_criteria/no_with_labels/041_systems                  1.00      2.2±0.12µs        ? ?/sec      3.36      7.3±3.33µs        ? ?/sec
run_criteria/no_with_labels/046_systems                  1.00      2.3±0.10µs        ? ?/sec      3.57      8.1±3.60µs        ? ?/sec
run_criteria/no_with_labels/051_systems                  1.00      2.2±0.09µs        ? ?/sec      3.44      7.6±3.46µs        ? ?/sec
run_criteria/no_with_labels/056_systems                  1.00      2.6±0.41µs        ? ?/sec      2.89      7.7±3.96µs        ? ?/sec
run_criteria/no_with_labels/061_systems                  1.00      2.7±0.27µs        ? ?/sec      3.16      8.5±4.26µs        ? ?/sec
run_criteria/no_with_labels/066_systems                  1.00      2.8±0.26µs        ? ?/sec      3.85     10.7±4.67µs        ? ?/sec
run_criteria/no_with_labels/071_systems                  1.00      3.2±0.37µs        ? ?/sec      3.71     11.9±5.51µs        ? ?/sec
run_criteria/no_with_labels/076_systems                  1.00      4.1±0.72µs        ? ?/sec      3.64     14.9±5.07µs        ? ?/sec
run_criteria/no_with_labels/081_systems                  1.00      4.7±0.94µs        ? ?/sec      2.75     12.9±4.99µs        ? ?/sec
run_criteria/no_with_labels/086_systems                  1.00      5.3±1.62µs        ? ?/sec      2.92     15.5±5.16µs        ? ?/sec
run_criteria/no_with_labels/091_systems                  1.00      5.6±1.43µs        ? ?/sec      3.19     17.8±4.04µs        ? ?/sec
run_criteria/no_with_labels/096_systems                  1.00      6.3±1.65µs        ? ?/sec      3.57     22.7±0.90µs        ? ?/sec
run_criteria/no_with_labels/101_systems                  1.00      7.5±2.31µs        ? ?/sec      2.54     19.0±3.62µs        ? ?/sec
run_criteria/yes/001_systems                             1.61      5.9±0.42µs        ? ?/sec      1.00      3.7±0.21µs        ? ?/sec
run_criteria/yes/006_systems                             1.44     12.3±1.20µs        ? ?/sec      1.00      8.5±0.27µs        ? ?/sec
run_criteria/yes/011_systems                             1.51     17.9±1.65µs        ? ?/sec      1.00     11.9±0.61µs        ? ?/sec
run_criteria/yes/016_systems                             1.48     23.4±2.54µs        ? ?/sec      1.00     15.8±0.53µs        ? ?/sec
run_criteria/yes/021_systems                             1.37     27.2±2.86µs        ? ?/sec      1.00     19.9±0.85µs        ? ?/sec
run_criteria/yes/026_systems                             1.36     33.7±2.31µs        ? ?/sec      1.00     24.7±0.97µs        ? ?/sec
run_criteria/yes/031_systems                             1.40     38.5±2.82µs        ? ?/sec      1.00     27.5±1.86µs        ? ?/sec
run_criteria/yes/036_systems                             1.30     41.5±3.91µs        ? ?/sec      1.00     31.9±1.18µs        ? ?/sec
run_criteria/yes/041_systems                             1.31     47.3±4.65µs        ? ?/sec      1.00     36.2±1.34µs        ? ?/sec
run_criteria/yes/046_systems                             1.32     53.2±3.36µs        ? ?/sec      1.00     40.2±1.11µs        ? ?/sec
run_criteria/yes/051_systems                             1.25     55.8±4.93µs        ? ?/sec      1.00     44.6±1.20µs        ? ?/sec
run_criteria/yes/056_systems                             1.27     60.8±3.97µs        ? ?/sec      1.00     47.7±1.29µs        ? ?/sec
run_criteria/yes/061_systems                             1.21     62.8±5.42µs        ? ?/sec      1.00     51.9±1.38µs        ? ?/sec
run_criteria/yes/066_systems                             1.20     66.9±7.21µs        ? ?/sec      1.00     55.7±1.44µs        ? ?/sec
run_criteria/yes/071_systems                             1.20     72.7±6.34µs        ? ?/sec      1.00     60.4±1.96µs        ? ?/sec
run_criteria/yes/076_systems                             1.17     74.2±6.22µs        ? ?/sec      1.00     63.5±2.26µs        ? ?/sec
run_criteria/yes/081_systems                             1.18     79.1±5.81µs        ? ?/sec      1.00     67.1±1.92µs        ? ?/sec
run_criteria/yes/086_systems                             1.24     87.6±5.72µs        ? ?/sec      1.00     70.8±2.83µs        ? ?/sec
run_criteria/yes/091_systems                             1.14     86.5±6.30µs        ? ?/sec      1.00     76.0±2.81µs        ? ?/sec
run_criteria/yes/096_systems                             1.11     90.0±5.66µs        ? ?/sec      1.00     81.1±2.89µs        ? ?/sec