Skip to content

Add erased version for internal switches#705

Draft
ameligrana wants to merge 2 commits into
mainfrom
erased
Draft

Add erased version for internal switches#705
ameligrana wants to merge 2 commits into
mainfrom
erased

Conversation

@ameligrana

Copy link
Copy Markdown
Member

This is trying to an erased version of internals which should improve by an order of magnitude the compile time of the library at the cost of some runtime performance.

@codecov

codecov Bot commented Jul 24, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 87.50000% with 15 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
src/erased.jl 80.28% 14 Missing ⚠️
src/world.jl 97.95% 1 Missing ⚠️

📢 Thoughts on this report? Let us know!

@github-actions

github-actions Bot commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

🚀 2 benchmark improvements detected!

⚠️ 40 benchmark regressions detected!

Click to expand benchmark results

Time is per entity/N, allocations are totals. Allocations are only shown for current.

N       Time main             Time curr           Factor         Allocs         Bytes    
query_create
1000 6.43ns 6.44ns 1.00 0 0
query_create_filter
1000 6.43ns 6.39ns 0.99 0 0
query_posvel_1k_arch
100 6.86ns 6.70ns 0.98 0 0
1000 7.58ns 7.43ns 0.98 0 0
10000 2.16ns 2.11ns 0.98 0 0
100000 0.94ns 0.98ns 1.04 0 0
1000000 1.05ns 1.05ns 0.99 0 0
query_posvel_1k_arch_cached
100 6.95ns 7.14ns 1.03 0 0
1000 7.75ns 7.78ns 1.00 0 0
10000 2.19ns 2.23ns 1.02 0 0
100000 0.97ns 1.01ns 1.04 0 0
1000000 1.05ns 1.04ns 1.01 0 0
query_posvel_32_arch
100 2.43ns 2.75ns ⚠️ 1.13 0 0
1000 0.82ns 0.84ns 1.03 0 0
10000 0.45ns 0.45ns 1.00 0 0
100000 0.56ns 0.55ns 0.99 0 0
1000000 0.68ns 0.68ns 1.00 0 0
query_posvel_cold
100 0.87ns 0.87ns 1.00 0 0
1000 0.42ns 0.42ns 1.01 0 0
10000 0.38ns 0.40ns 1.04 0 0
100000 0.56ns 0.57ns 1.02 0 0
1000000 0.82ns 0.81ns 0.99 0 0
query_posvel_fields
100 0.47ns 0.55ns ⚠️ 1.18 0 0
1000 0.28ns 0.31ns ⚠️ 1.11 0 0
10000 0.35ns 0.35ns 1.00 0 0
100000 0.43ns 0.42ns 0.98 0 0
1000000 0.70ns 0.60ns 🚀 0.86 0 0
query_posvel_fields_broadcast
100 1.00ns 1.06ns 1.06 0 0
1000 0.81ns 0.84ns 1.03 0 0
10000 0.77ns 0.78ns 1.01 0 0
100000 0.92ns 0.92ns 1.00 0 0
1000000 1.71ns 1.51ns 🚀 0.88 0 0
query_posvel_hot
100 0.54ns 0.70ns ⚠️ 1.31 0 0
1000 0.28ns 0.34ns ⚠️ 1.20 0 0
10000 0.35ns 0.35ns 1.01 0 0
100000 0.41ns 0.41ns 1.00 0 0
1000000 0.65ns 0.63ns 0.98 0 0
query_posvel_mean
100 1.07ns 1.18ns 1.10 0 0
100000 1.03ns 1.03ns 1.00 0 0
query_posvel_mean_readonly
100 1.08ns 1.18ns 1.10 0 0
100000 1.03ns 1.03ns 1.00 0 0
query_posvel_soa
100 1.60ns 1.68ns 1.05 0 0
1000 1.43ns 1.43ns 1.00 0 0
10000 1.39ns 1.39ns 1.00 0 0
100000 1.39ns 1.39ns 1.00 0 0
1000000 1.58ns 1.42ns 0.92 0 0
query_posvel_soa_unpack
100 0.56ns 0.68ns ⚠️ 1.22 0 0
1000 0.29ns 0.33ns ⚠️ 1.12 0 0
10000 0.35ns 0.35ns 1.00 0 0
100000 0.45ns 0.43ns 0.96 0 0
1000000 0.65ns 0.63ns 0.99 0 0
world_add_remove_1
100 36.38ns 70.71ns ⚠️ 1.96 0 0
10000 36.72ns 72.28ns ⚠️ 1.98 0 0
world_add_remove_1_batch
100 4.35ns 5.38ns ⚠️ 1.24 0 0
10000 2.78ns 2.78ns 1.00 0 0
world_add_remove_1_buffer
100 37.37ns 76.69ns ⚠️ 2.05 0 0
10000 37.69ns 77.76ns ⚠️ 2.06 0 0
world_add_remove_1_buffer_single
100 48.79ns 48.20ns 0.99 0 0
10000 46.05ns 46.18ns 1.00 0 0
world_add_remove_1_large
100 50.96ns 73.87ns ⚠️ 1.45 0 0
10000 50.21ns 72.51ns ⚠️ 1.45 0 0
world_add_remove_1_soa
100 37.55ns 76.68ns ⚠️ 2.04 0 0
10000 37.92ns 77.51ns ⚠️ 2.05 0 0
world_add_remove_8
100 59.67ns 99.83ns ⚠️ 1.67 0 0
10000 61.13ns 100.64ns ⚠️ 1.65 0 0
world_add_remove_8_large
100 84.56ns 104.96ns ⚠️ 1.24 0 0
10000 84.72ns 102.40ns ⚠️ 1.21 0 0
world_add_remove_8_soa
100 77.64ns 122.11ns ⚠️ 1.57 0 0
10000 79.47ns 123.08ns ⚠️ 1.55 0 0
world_copy_entity_5
100 30.52ns 104.01ns ⚠️ 3.52 0 0
10000 32.73ns 104.33ns ⚠️ 3.35 0 0
world_get_1
100 1.02ns 1.08ns 1.06 0 0
10000 0.94ns 0.94ns 1.00 0 0
world_get_1_soa
100 1.72ns 1.76ns 1.02 0 0
10000 1.64ns 1.64ns 1.00 0 0
world_get_5
100 2.95ns 3.01ns 1.02 0 0
10000 2.87ns 2.87ns 1.00 0 0
world_get_5_unchecked
100 1.94ns 1.99ns 1.02 0 0
10000 1.89ns 1.89ns 1.00 0 0
world_get_rel
100 1.08ns 1.13ns 1.05 0 0
10000 1.02ns 1.02ns 1.00 0 0
world_has_1
100 1.10ns 1.15ns 1.05 0 0
10000 1.02ns 1.02ns 1.00 0 0
world_has_5
100 1.77ns 1.83ns 1.03 0 0
10000 1.70ns 1.70ns 1.00 0 0
world_new_entities_1
100 2.97ns 3.27ns ⚠️ 1.10 0 0
10000 2.33ns 2.40ns 1.03 0 0
world_new_entities_1_def
100 2.98ns 3.27ns 1.10 0 0
10000 2.48ns 2.56ns 1.03 0 0
world_new_entities_5
100 5.01ns 6.18ns ⚠️ 1.23 0 0
10000 4.01ns 4.15ns 1.03 0 0
world_new_entities_5_def
100 4.94ns 5.94ns ⚠️ 1.20 0 0
10000 4.06ns 4.27ns 1.05 0 0
world_new_entity_1
100 12.75ns 12.79ns 1.00 0 0
10000 12.98ns 12.93ns 1.00 0 0
world_new_entity_1_rel
100 40.80ns 42.93ns 1.05 0 0
10000 40.74ns 43.08ns 1.06 0 0
world_new_entity_1_soa
100 14.76ns 14.76ns 1.00 0 0
10000 14.77ns 14.66ns 0.99 0 0
world_new_entity_5
100 22.27ns 22.37ns 1.01 0 0
10000 22.31ns 22.33ns 1.00 0 0
world_new_entity_5_rel
100 57.63ns 61.90ns 1.07 0 0
10000 58.34ns 62.07ns 1.06 0 0
world_new_entity_5_soa
100 32.19ns 32.35ns 1.01 0 0
10000 32.70ns 33.32ns 1.02 0 0
world_partition
100 17.20ns 53.32ns ⚠️ 3.11 0 0
10000 21.52ns 56.34ns ⚠️ 2.66 0 0
world_posvel
100 2.43ns 2.49ns 1.02 0 0
10000 2.55ns 2.55ns 1.00 0 0
world_remove_entities_5
100 2.20ns 3.54ns ⚠️ 1.61 0 0
10000 1.05ns 1.21ns ⚠️ 1.16 0 0
world_remove_entity_5
100 19.20ns 96.16ns ⚠️ 5.01 0 0
10000 19.13ns 96.78ns ⚠️ 5.06 0 0
world_resource
1 9.84ns 18.85ns ⚠️ 1.90 0 0
world_set_1
100 2.20ns 2.25ns 1.03 0 0
10000 2.30ns 2.31ns 1.00 0 0
world_set_1_soa
100 2.44ns 2.48ns 1.02 0 0
10000 2.51ns 2.51ns 1.00 0 0
world_set_5
100 6.41ns 6.49ns 1.01 0 0
10000 7.20ns 7.24ns 1.00 0 0
world_set_rel
100 45.61ns 56.63ns ⚠️ 1.24 0 0
10000 45.25ns 55.79ns ⚠️ 1.23 0 0
world_set_rel_batch
100 2.54ns 3.20ns ⚠️ 1.26 0 0
10000 0.75ns 0.76ns 1.01 0 0
world_shuffle
100 54.49ns 177.75ns ⚠️ 3.29 0 0
10000 71.19ns 200.53ns ⚠️ 2.84 0 0
world_sort
100 63.97ns 163.33ns ⚠️ 2.56 70 2720
10000 235.58ns 236.83ns 1.01 70 2720
world_update_1
100 2.13ns 2.17ns 1.02 0 0
10000 2.21ns 2.22ns 1.01 0 0
world_update_5
100 9.99ns 10.16ns 1.02 0 0
10000 10.56ns 10.62ns 1.01 0 0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant