# Objective
- `entity_cloning` was separated from the rest of the ECS benchmarks.
- There was some room for improvement in the benchmarks themselves.
- Part of #16647.
## Solution
- Merge `entity_cloning` into the rest of the ECS benchmarks.
- Apply the `bench!` macro to all benchmark names.\
- Reorganize benchmarks and their helper functions, with more comments
than before.
- Remove all the extra component definitions (`C2`, `C3`, etc.), and
just leave one. Now all entities have exactly one component.
## Testing
```sh
# List all entity cloning benchmarks, to verify their names have updated.
cargo bench -p benches --bench ecs entity_cloning -- --list
# Test benchmarks by running them once.
cargo test -p benches --bench ecs entity_cloning
# Run all benchmarks (takes about a minute).
cargo bench -p benches --bench ecs entity_cloning
```
---
## Showcase

Interestingly, using `Clone` instead of `Reflect` appears to be 2-2.5
times faster. Furthermore, there were noticeable jumps in time when
running the benchmarks:

I theorize this is because the `World` is allocating more space for all
the entities, but I don't know for certain. Neat!