Conversation
…uild time to avoid toolchain issues
|
| Branch | feat/bevy-0.17 |
| Testbed | linux-gha |
🚨 6 Alerts
| Benchmark | Measure Units | View | Benchmark Result (Result Δ%) | Upper Boundary (Limit %) |
|---|---|---|---|---|
| component/access Rhai | Latency microseconds (µs) | 📈 plot 🚷 threshold 🚨 alert (🔔) | 9.08 µs(+41.36%)Baseline: 6.42 µs | 8.95 µs (101.48%) |
| component/get Rhai | Latency microseconds (µs) | 📈 plot 🚷 threshold 🚨 alert (🔔) | 7.71 µs(+56.01%)Baseline: 4.94 µs | 7.58 µs (101.75%) |
| math/vec mat ops Rhai | Latency microseconds (µs) | 📈 plot 🚷 threshold 🚨 alert (🔔) | 9.87 µs(+28.11%)Baseline: 7.71 µs | 9.83 µs (100.47%) |
| query/10 entities Rhai | Latency microseconds (µs) | 📈 plot 🚷 threshold 🚨 alert (🔔) | 28.21 µs(+23.57%)Baseline: 22.83 µs | 28.03 µs (100.66%) |
| resource/access Rhai | Latency microseconds (µs) | 📈 plot 🚷 threshold 🚨 alert (🔔) | 8.55 µs(+45.55%)Baseline: 5.87 µs | 8.42 µs (101.54%) |
| resource/get Rhai | Latency microseconds (µs) | 📈 plot 🚷 threshold 🚨 alert (🔔) | 7.29 µs(+63.20%)Baseline: 4.47 µs | 7.15 µs (101.99%) |
Click to view all benchmark results
| Benchmark | Latency | Benchmark Result nanoseconds (ns) (Result Δ%) | Upper Boundary nanoseconds (ns) (Limit %) |
|---|---|---|---|
| component/access Lua | 📈 view plot 🚷 view threshold | 5,270.60 ns(+15.95%)Baseline: 4,545.39 ns | 5,315.68 ns (99.15%) |
| component/access Rhai | 📈 view plot 🚷 view threshold 🚨 view alert (🔔) | 9,081.70 ns(+41.36%)Baseline: 6,424.60 ns | 8,948.83 ns (101.48%) |
| component/get Lua | 📈 view plot 🚷 view threshold | 2,875.30 ns(-1.24%)Baseline: 2,911.30 ns | 3,154.76 ns (91.14%) |
| component/get Rhai | 📈 view plot 🚷 view threshold 🚨 view alert (🔔) | 7,709.50 ns(+56.01%)Baseline: 4,941.61 ns | 7,577.19 ns (101.75%) |
| conversions/Mut::from | 📈 view plot 🚷 view threshold | 84.96 ns(-18.14%)Baseline: 103.78 ns | 122.54 ns (69.33%) |
| conversions/Ref::from | 📈 view plot 🚷 view threshold | 80.93 ns(-18.95%)Baseline: 99.85 ns | 118.40 ns (68.35%) |
| conversions/ScriptValue::List | 📈 view plot 🚷 view threshold | 366.39 ns(-6.05%)Baseline: 389.97 ns | 449.49 ns (81.51%) |
| conversions/ScriptValue::Map | 📈 view plot 🚷 view threshold | 1,067.50 ns(-10.58%)Baseline: 1,193.83 ns | 1,364.55 ns (78.23%) |
| conversions/ScriptValue::Reference::from_into | 📈 view plot 🚷 view threshold | 25.99 ns(-9.90%)Baseline: 28.85 ns | 32.44 ns (80.13%) |
| conversions/Val::from_into | 📈 view plot 🚷 view threshold | 249.81 ns(-20.30%)Baseline: 313.43 ns | 408.94 ns (61.09%) |
| function/call 4 args Lua | 📈 view plot 🚷 view threshold | 1,898.00 ns(-11.72%)Baseline: 2,149.88 ns | 2,442.56 ns (77.71%) |
| function/call 4 args Rhai | 📈 view plot 🚷 view threshold | 1,467.80 ns(-6.28%)Baseline: 1,566.19 ns | 1,742.36 ns (84.24%) |
| function/call Lua | 📈 view plot 🚷 view threshold | 387.09 ns(-8.06%)Baseline: 421.04 ns | 550.01 ns (70.38%) |
| function/call Rhai | 📈 view plot 🚷 view threshold | 475.80 ns(-2.17%)Baseline: 486.34 ns | 553.59 ns (85.95%) |
| loading/empty Lua | 📈 view plot 🚷 view threshold | 927,310.00 ns(-9.47%)Baseline: 1,024,270.00 ns | 1,390,825.27 ns (66.67%) |
| loading/empty Rhai | 📈 view plot 🚷 view threshold | 1,070,000.00 ns(-15.77%)Baseline: 1,270,324.00 ns | 1,864,980.93 ns (57.37%) |
| math/vec mat ops Lua | 📈 view plot 🚷 view threshold | 10,168.00 ns(+17.66%)Baseline: 8,642.08 ns | 10,308.38 ns (98.64%) |
| math/vec mat ops Rhai | 📈 view plot 🚷 view threshold 🚨 view alert (🔔) | 9,871.30 ns(+28.11%)Baseline: 7,705.35 ns | 9,825.23 ns (100.47%) |
| query/10 entities Lua | 📈 view plot 🚷 view threshold | 21,567.00 ns(-11.68%)Baseline: 24,419.20 ns | 27,587.31 ns (78.18%) |
| query/10 entities Rhai | 📈 view plot 🚷 view threshold 🚨 view alert (🔔) | 28,214.00 ns(+23.57%)Baseline: 22,832.00 ns | 28,029.20 ns (100.66%) |
| query/100 entities Lua | 📈 view plot 🚷 view threshold | 42,985.00 ns(-8.90%)Baseline: 47,185.50 ns | 52,046.67 ns (82.59%) |
| query/100 entities Rhai | 📈 view plot 🚷 view threshold | 40,371.00 ns(+8.61%)Baseline: 37,171.20 ns | 41,692.79 ns (96.83%) |
| query/1000 entities Lua | 📈 view plot 🚷 view threshold | 261,400.00 ns(-15.03%)Baseline: 307,639.00 ns | 376,635.16 ns (69.40%) |
| query/1000 entities Rhai | 📈 view plot 🚷 view threshold | 174,840.00 ns(-7.87%)Baseline: 189,776.00 ns | 224,741.97 ns (77.80%) |
| reflection/10 Lua | 📈 view plot 🚷 view threshold | 5,532.00 ns(-10.75%)Baseline: 6,198.45 ns | 6,878.31 ns (80.43%) |
| reflection/10 Rhai | 📈 view plot 🚷 view threshold | 14,648.00 ns(-8.05%)Baseline: 15,929.90 ns | 17,257.81 ns (84.88%) |
| reflection/100 Lua | 📈 view plot 🚷 view threshold | 46,708.00 ns(-11.31%)Baseline: 52,667.00 ns | 59,274.95 ns (78.80%) |
| reflection/100 Rhai | 📈 view plot 🚷 view threshold | 621,350.00 ns(-21.28%)Baseline: 789,303.00 ns | 970,058.16 ns (64.05%) |
| resource/access Lua | 📈 view plot 🚷 view threshold | 3,775.70 ns(-6.42%)Baseline: 4,034.87 ns | 4,391.77 ns (85.97%) |
| resource/access Rhai | 📈 view plot 🚷 view threshold 🚨 view alert (🔔) | 8,547.20 ns(+45.55%)Baseline: 5,872.39 ns | 8,417.63 ns (101.54%) |
| resource/get Lua | 📈 view plot 🚷 view threshold | 2,230.20 ns(-11.08%)Baseline: 2,507.97 ns | 2,894.82 ns (77.04%) |
| resource/get Rhai | 📈 view plot 🚷 view threshold 🚨 view alert (🔔) | 7,289.70 ns(+63.20%)Baseline: 4,466.66 ns | 7,147.44 ns (101.99%) |
|
Quite a feat!
That'll work. It keeps the script asset resident even though in many cases it could be unloaded since what we often care about is the context, but that's probably not a lot of memory being eaten. Idle Consideration:
|
|
Currently left to do:
|
2c1058c to
42d87a0
Compare
|
I've split out my holiday stash into a follow up: #503, this PR should work as normal, but some of the bindings might not be optimal yet (like from_raw no longer exists without an optional wrapper, so codegen needs to improve to keep up with bevy) But the codegen improvements I am planning will drastically increase coverage to match existing trait implementations |
|
Yeah! Woohoo! |

Tracking issues so far:
WithWorldAccessis not feasible anymore due to the inability to read component accesses into a system param at initialization