Skip to content

feat: Hot Reload#1761

Draft
marc2332 wants to merge 2 commits intomainfrom
feat/hotreload
Draft

feat: Hot Reload#1761
marc2332 wants to merge 2 commits intomainfrom
feat/hotreload

Conversation

@marc2332
Copy link
Copy Markdown
Owner

@marc2332 marc2332 commented Apr 7, 2026

Co-authored-by: wilovy <emiliano@adquiere.co>
Co-authored-by: Marc Espin <marc@mespin.me>
@marc2332 marc2332 added this to the 0.4.0 milestone Apr 7, 2026
@marc2332 marc2332 self-assigned this Apr 7, 2026
@marc2332 marc2332 added the enhancement 🔥 New feature or request label Apr 7, 2026
@marc2332 marc2332 changed the title feat: Hotreload feat: Hot Reload Apr 7, 2026
@marc2332 marc2332 moved this to In Progress in Freya Planning Apr 7, 2026
@github-actions
Copy link
Copy Markdown

github-actions bot commented Apr 7, 2026

Benchmark for 273969c

Click to view benchmark
Test Base PR %
benchmarks/alignments=true size=21845 depth=8 wide=4 mode=not cached 1287.0±145.50µs 1500.6±195.10µs +16.60%
benchmarks/size=100001 depth=2 wide=100000 mode=not cached 8.0±0.58ms 7.8±0.64ms -2.50%
benchmarks/size=10001 depth=2 wide=10000 mode=not cached 369.5±202.84µs 370.0±195.76µs +0.14%
benchmarks/size=1001 depth=2 wide=1000 mode=not cached 32.3±32.42µs 32.0±29.12µs -0.93%
benchmarks/size=131071 depth=17 wide=2 mode=not cached 14.2±0.49ms 14.3±0.40ms +0.70%
benchmarks/size=16383 depth=14 wide=2 mode=not cached 1006.6±116.80µs 1007.5±117.02µs +0.09%
benchmarks/size=19531 depth=7 wide=5 mode=cached 941.8±8.00µs 994.3±80.84µs +5.57%
benchmarks/size=19531 depth=7 wide=5 mode=not cached 954.9±87.70µs 1012.2±126.81µs +6.00%
benchmarks/size=4095 depth=12 wide=2 mode=not cached 220.7±161.87µs 220.4±165.83µs -0.14%
benchmarks/size=54241 depth=5 wide=15 mode=cached 789.8±25.72µs 804.9±59.97µs +1.91%
benchmarks/size=54241 depth=5 wide=15 mode=not cached 839.0±169.92µs 798.5±78.54µs -4.83%

@github-actions
Copy link
Copy Markdown

github-actions bot commented Apr 7, 2026

Performance Comparison mainfeat/hotreload

Total Elapsed Time: 66.84ms → 68.33ms (+2.2%)
CPU Baseline: 91.36µs → 90.62µs (-0.8%)
Benchmark ID: alloc

timing - Function execution time metrics.

+-----------------------------------+--------------------------+----------------------------------+----------------------------------+----------------------------------+-----------------------------------+-----------------------------------+-----------------------------------+------------------------------+
| Function                          | Calls                    | Avg                              | P33                              | P66                              | P95                               | P99                               | Total                             | % Total                      |
+-----------------------------------+--------------------------+----------------------------------+----------------------------------+----------------------------------+-----------------------------------+-----------------------------------+-----------------------------------+------------------------------+
| dev_perf::main                    | 1 → 1 (+0.0%)            | 66.50ms → 68.06ms (+2.3%)        | 66.52ms → 68.09ms (+2.4%)        | 66.52ms → 68.09ms (+2.4%)        | 66.52ms → 68.09ms (+2.4%)         | 66.52ms → 68.09ms (+2.4%)         | 66.50ms → 68.06ms (+2.3%)         | 100.00% → 100.00% (+0.0%)    |
+-----------------------------------+--------------------------+----------------------------------+----------------------------------+----------------------------------+-----------------------------------+-----------------------------------+-----------------------------------+------------------------------+
| runner::run_scope                 | 32025 → 32025 (+0.0%)    | 1.57µs → 1.57µs (+0.0%)          | 20.00ns → 20.00ns (+0.0%)        | 20.00ns → 20.00ns (+0.0%)        | 21.00ns → 21.00ns (+0.0%)         | 30.00ns → 30.00ns (+0.0%)         | 50.40ms → 50.17ms (-0.5%)         | 75.79% → 73.71% (-2.7%)      |
+-----------------------------------+--------------------------+----------------------------------+----------------------------------+----------------------------------+-----------------------------------+-----------------------------------+-----------------------------------+------------------------------+
| runner::sync_and_update           | 3 → 3 (+0.0%)            | 13.06ms → 13.01ms (-0.4%)        | 8.40ms → 8.45ms (+0.6%)          | 8.56ms → 8.46ms (-1.2%)          | 22.22ms → 22.12ms (-0.5%)         | 22.22ms → 22.12ms (-0.5%)         | 39.17ms → 39.03ms (-0.4%)         | 58.90% → 57.34% (-2.6%)      |
+-----------------------------------+--------------------------+----------------------------------+----------------------------------+----------------------------------+-----------------------------------+-----------------------------------+-----------------------------------+------------------------------+
| tree::apply_mutations             | 3 → 3 (+0.0%)            | 8.72ms → 9.25ms (+6.1%)          | 2.04ms → 2.11ms (+3.4%)          | 8.57ms → 9.31ms (+8.6%)          | 15.56ms → 16.33ms (+4.9%)         | 15.56ms → 16.33ms (+4.9%)         | 26.16ms → 27.74ms (+6.0%)         | 39.34% → 40.76% (+3.6%)      |
+-----------------------------------+--------------------------+----------------------------------+----------------------------------+----------------------------------+-----------------------------------+-----------------------------------+-----------------------------------+------------------------------+
| path_element::from_element        | 32025 → 32025 (+0.0%)    | 516.00ns → 512.00ns (-0.8%)      | 40.00ns → 40.00ns (+0.0%)        | 50.00ns → 50.00ns (+0.0%)        | 70.00ns → 70.00ns (+0.0%)         | 71.00ns → 80.00ns (+12.7%)        | 16.53ms → 16.41ms (-0.7%)         | 24.86% → 24.11% (-3.0%)      |
+-----------------------------------+--------------------------+----------------------------------+----------------------------------+----------------------------------+-----------------------------------+-----------------------------------+-----------------------------------+------------------------------+
| path_element::diff                | 32025 → 32025 (+0.0%)    | 435.00ns → 436.00ns (+0.2%)      | 40.00ns → 40.00ns (+0.0%)        | 50.00ns → 50.00ns (+0.0%)        | 161.00ns → 161.00ns (+0.0%)       | 601.00ns → 561.00ns (-6.7%)       | 13.93ms → 13.99ms (+0.4%)         | 20.95% → 20.55% (-1.9%)      |
+-----------------------------------+--------------------------+----------------------------------+----------------------------------+----------------------------------+-----------------------------------+-----------------------------------+-----------------------------------+------------------------------+
| mutations run                     | 3 → 3 (+0.0%)            | 3.72ms → 3.93ms (+5.6%)          | 3.61µs → 3.80µs (+5.3%)          | 2.60ms → 2.49ms (-4.2%)          | 8.57ms → 9.31ms (+8.6%)           | 8.57ms → 9.31ms (+8.6%)           | 11.17ms → 11.80ms (+5.6%)         | 16.79% → 17.34% (+3.3%)      |
+-----------------------------------+--------------------------+----------------------------------+----------------------------------+----------------------------------+-----------------------------------+-----------------------------------+-----------------------------------+------------------------------+
| runner::apply_diff                | 6 → 6 (+0.0%)            | 1.48ms → 1.49ms (+0.7%)          | 5.55µs → 5.02µs (-9.5%)          | 2.10ms → 2.17ms (+3.3%)          | 2.46ms → 2.47ms (+0.4%)           | 2.46ms → 2.47ms (+0.4%)           | 8.88ms → 8.94ms (+0.7%)           | 13.35% → 13.13% (-1.6%)      |
+-----------------------------------+--------------------------+----------------------------------+----------------------------------+----------------------------------+-----------------------------------+-----------------------------------+-----------------------------------+------------------------------+
| Scope Rendering                   | 2 → 2 (+0.0%)            | 4.15ms → 4.17ms (+0.5%)          | 4.02ms → 3.99ms (-0.7%)          | 4.29ms → 4.36ms (+1.6%)          | 4.29ms → 4.36ms (+1.6%)           | 4.29ms → 4.36ms (+1.6%)           | 8.31ms → 8.34ms (+0.4%)           | 12.50% → 12.25% (-2.0%)      |
+-----------------------------------+--------------------------+----------------------------------+----------------------------------+----------------------------------+-----------------------------------+-----------------------------------+-----------------------------------+------------------------------+
| dirty run                         | 3 → 3 (+0.0%)            | 1.82ms → 1.84ms (+1.1%)          | 321.00ns → 421.00ns (+31.2%) ⚠️  | 1.42µs → 2.10µs (+47.9%) ⚠️      | 5.45ms → 5.52ms (+1.3%)           | 5.45ms → 5.52ms (+1.3%)           | 5.45ms → 5.52ms (+1.3%)           | 8.20% → 8.11% (-1.1%)        |
+-----------------------------------+--------------------------+----------------------------------+----------------------------------+----------------------------------+-----------------------------------+-----------------------------------+-----------------------------------+------------------------------+
| text style cascade                | 3 → 3 (+0.0%)            | 1.55ms → 1.83ms (+18.1%)         | 70.00ns → 51.00ns (-27.1%) 🚀    | 912.00ns → 962.00ns (+5.5%)      | 4.67ms → 5.50ms (+17.8%)          | 4.67ms → 5.50ms (+17.8%)          | 4.67ms → 5.50ms (+17.8%)          | 7.02% → 8.08% (+15.1%)       |
+-----------------------------------+--------------------------+----------------------------------+----------------------------------+----------------------------------+-----------------------------------+-----------------------------------+-----------------------------------+------------------------------+
| layer cascade                     | 3 → 3 (+0.0%)            | 1.58ms → 1.60ms (+1.3%)          | 40.00ns → 40.00ns (+0.0%)        | 2.03ms → 2.11ms (+3.9%)          | 2.72ms → 2.70ms (-0.7%)           | 2.72ms → 2.70ms (-0.7%)           | 4.75ms → 4.80ms (+1.1%)           | 7.14% → 7.06% (-1.1%)        |
+-----------------------------------+--------------------------+----------------------------------+----------------------------------+----------------------------------+-----------------------------------+-----------------------------------+-----------------------------------+------------------------------+
| runner::handle_events_immediately | 3 → 3 (+0.0%)            | 357.00ns → 1.45µs (+306.2%) ⚠️   | 201.00ns → 230.00ns (+14.4%)     | 240.00ns → 401.00ns (+67.1%) ⚠️  | 631.00ns → 3.73µs (+491.1%) ⚠️    | 631.00ns → 3.73µs (+491.1%) ⚠️    | 1.07µs → 4.36µs (+307.5%) ⚠️      | 0.00% → 0.01% (+100.0%) ⚠️   |
+-----------------------------------+--------------------------+----------------------------------+----------------------------------+----------------------------------+-----------------------------------+-----------------------------------+-----------------------------------+------------------------------+
| effect cascade                    | 3 → 3 (+0.0%)            | 73.00ns → 220.00ns (+201.4%) ⚠️  | 50.00ns → 70.00ns (+40.0%) ⚠️    | 50.00ns → 170.00ns (+240.0%) ⚠️  | 120.00ns → 421.00ns (+250.8%) ⚠️  | 120.00ns → 421.00ns (+250.8%) ⚠️  | 220.00ns → 661.00ns (+200.5%) ⚠️  | 0.00% → 0.00% (+0.0%)        |
+-----------------------------------+--------------------------+----------------------------------+----------------------------------+----------------------------------+-----------------------------------+-----------------------------------+-----------------------------------+------------------------------+

alloc-bytes - Cumulative allocation bytes during each function call (including nested calls).

+-----------------------------------+--------------------------+------------------------------+--------------------------------+------------------------------+------------------------------+------------------------------+------------------------------+------------------------------+
| Function                          | Calls                    | Avg                          | P33                            | P66                          | P95                          | P99                          | Total                        | % Total                      |
+-----------------------------------+--------------------------+------------------------------+--------------------------------+------------------------------+------------------------------+------------------------------+------------------------------+------------------------------+
| dev_perf::main                    | 1 → 1 (+0.0%)            | 61.2 MB → 61.2 MB (+0.0%)    | 61.2 MB → 61.2 MB (+0.0%)      | 61.2 MB → 61.2 MB (+0.0%)    | 61.2 MB → 61.2 MB (+0.0%)    | 61.2 MB → 61.2 MB (+0.0%)    | 61.2 MB → 61.2 MB (+0.0%)    | 100.00% → 100.00% (+0.0%)    |
+-----------------------------------+--------------------------+------------------------------+--------------------------------+------------------------------+------------------------------+------------------------------+------------------------------+------------------------------+
| runner::run_scope                 | 32025 → 32025 (+0.0%)    | 1.5 KB → 1.5 KB (+0.0%)      | 88 B → 88 B (+0.0%)            | 11.8 MB → 11.8 MB (+0.0%)    | 23.6 MB → 23.6 MB (+0.0%)    | 23.6 MB → 23.6 MB (+0.0%)    | 47.2 MB → 47.2 MB (+0.0%)    | 77.05% → 77.05% (+0.0%)      |
+-----------------------------------+--------------------------+------------------------------+--------------------------------+------------------------------+------------------------------+------------------------------+------------------------------+------------------------------+
| runner::sync_and_update           | 3 → 3 (+0.0%)            | 12.6 MB → 12.6 MB (+0.0%)    | 6.0 MB → 6.0 MB (+0.0%)        | 8.1 MB → 8.1 MB (+0.0%)      | 23.6 MB → 23.6 MB (+0.0%)    | 23.6 MB → 23.6 MB (+0.0%)    | 37.7 MB → 37.7 MB (+0.0%)    | 61.53% → 61.53% (+0.0%)      |
+-----------------------------------+--------------------------+------------------------------+--------------------------------+------------------------------+------------------------------+------------------------------+------------------------------+------------------------------+
| tree::apply_mutations             | 3 → 3 (+0.0%)            | 7.8 MB → 7.8 MB (+0.0%)      | 875.0 KB → 875.0 KB (+0.0%)    | 1.6 MB → 1.6 MB (+0.0%)      | 21.1 MB → 21.1 MB (+0.0%)    | 21.1 MB → 21.1 MB (+0.0%)    | 23.5 MB → 23.5 MB (+0.0%)    | 38.41% → 38.41% (+0.0%)      |
+-----------------------------------+--------------------------+------------------------------+--------------------------------+------------------------------+------------------------------+------------------------------+------------------------------+------------------------------+
| Scope Rendering                   | 2 → 2 (+0.0%)            | 6.8 MB → 6.8 MB (+0.0%)      | 6.8 MB → 6.8 MB (+0.0%)        | 6.8 MB → 6.8 MB (+0.0%)      | 6.8 MB → 6.8 MB (+0.0%)      | 6.8 MB → 6.8 MB (+0.0%)      | 13.6 MB → 13.6 MB (+0.0%)    | 22.25% → 22.25% (+0.0%)      |
+-----------------------------------+--------------------------+------------------------------+--------------------------------+------------------------------+------------------------------+------------------------------+------------------------------+------------------------------+
| runner::apply_diff                | 6 → 6 (+0.0%)            | 1.6 MB → 1.6 MB (+0.0%)      | 604 B → 604 B (+0.0%)          | 1.4 MB → 1.4 MB (+0.0%)      | 3.3 MB → 3.3 MB (+0.0%)      | 3.3 MB → 3.3 MB (+0.0%)      | 9.4 MB → 9.4 MB (+0.0%)      | 15.32% → 15.32% (+0.0%)      |
+-----------------------------------+--------------------------+------------------------------+--------------------------------+------------------------------+------------------------------+------------------------------+------------------------------+------------------------------+
| text style cascade                | 3 → 3 (+0.0%)            | 2.6 MB → 2.6 MB (+0.0%)      | 84 B → 84 B (+0.0%)            | 7.8 MB → 7.8 MB (+0.0%)      | 7.8 MB → 7.8 MB (+0.0%)      | 7.8 MB → 7.8 MB (+0.0%)      | 7.8 MB → 7.8 MB (+0.0%)      | 12.71% → 12.71% (+0.0%)      |
+-----------------------------------+--------------------------+------------------------------+--------------------------------+------------------------------+------------------------------+------------------------------+------------------------------+------------------------------+
| path_element::diff                | 32025 → 32025 (+0.0%)    | 248 B → 248 B (+0.0%)        | 12 B → 12 B (+0.0%)            | 12 B → 12 B (+0.0%)          | 12 B → 12 B (+0.0%)          | 12 B → 12 B (+0.0%)          | 7.6 MB → 7.6 MB (+0.0%)      | 12.41% → 12.41% (+0.0%)      |
+-----------------------------------+--------------------------+------------------------------+--------------------------------+------------------------------+------------------------------+------------------------------+------------------------------+------------------------------+
| mutations run                     | 3 → 3 (+0.0%)            | 2.5 MB → 2.5 MB (+0.0%)      | 64 B → 64 B (+0.0%)            | 1.6 MB → 1.6 MB (+0.0%)      | 6.0 MB → 6.0 MB (+0.0%)      | 6.0 MB → 6.0 MB (+0.0%)      | 7.6 MB → 7.6 MB (+0.0%)      | 12.35% → 12.35% (+0.0%)      |
+-----------------------------------+--------------------------+------------------------------+--------------------------------+------------------------------+------------------------------+------------------------------+------------------------------+------------------------------+
| path_element::from_element        | 32025 → 32025 (+0.0%)    | 227 B → 227 B (+0.0%)        | 12 B → 12 B (+0.0%)            | 12 B → 12 B (+0.0%)          | 12 B → 12 B (+0.0%)          | 12 B → 12 B (+0.0%)          | 7.0 MB → 7.0 MB (+0.0%)      | 11.37% → 11.37% (+0.0%)      |
+-----------------------------------+--------------------------+------------------------------+--------------------------------+------------------------------+------------------------------+------------------------------+------------------------------+------------------------------+
| dirty run                         | 3 → 3 (+0.0%)            | 1.4 MB → 1.4 MB (+0.0%)      | 64 B → 64 B (+0.0%)            | 4.2 MB → 4.2 MB (+0.0%)      | 4.2 MB → 4.2 MB (+0.0%)      | 4.2 MB → 4.2 MB (+0.0%)      | 4.2 MB → 4.2 MB (+0.0%)      | 6.84% → 6.84% (+0.0%)        |
+-----------------------------------+--------------------------+------------------------------+--------------------------------+------------------------------+------------------------------+------------------------------+------------------------------+------------------------------+
| layer cascade                     | 3 → 3 (+0.0%)            | 1.2 MB → 1.2 MB (+0.0%)      | 874.5 KB → 874.5 KB (+0.0%)    | 2.8 MB → 2.8 MB (+0.0%)      | 2.8 MB → 2.8 MB (+0.0%)      | 2.8 MB → 2.8 MB (+0.0%)      | 3.7 MB → 3.7 MB (+0.0%)      | 6.05% → 6.05% (+0.0%)        |
+-----------------------------------+--------------------------+------------------------------+--------------------------------+------------------------------+------------------------------+------------------------------+------------------------------+------------------------------+
| effect cascade                    | 3 → 3 (+0.0%)            | 0 B → 0 B (+0.0%)            | 0 B → 0 B (+0.0%)              | 0 B → 0 B (+0.0%)            | 0 B → 0 B (+0.0%)            | 0 B → 0 B (+0.0%)            | 0 B → 0 B (+0.0%)            | 0.00% → 0.00% (+0.0%)        |
+-----------------------------------+--------------------------+------------------------------+--------------------------------+------------------------------+------------------------------+------------------------------+------------------------------+------------------------------+
| runner::handle_events_immediately | 3 → 3 (+0.0%)            | 0 B → 0 B (+0.0%)            | 0 B → 0 B (+0.0%)              | 0 B → 0 B (+0.0%)            | 0 B → 0 B (+0.0%)            | 0 B → 0 B (+0.0%)            | 0 B → 0 B (+0.0%)            | 0.00% → 0.00% (+0.0%)        |
+-----------------------------------+--------------------------+------------------------------+--------------------------------+------------------------------+------------------------------+------------------------------+------------------------------+------------------------------+

Threads

Total Alloc: 736.0 KB → 811.4 KB (+10.2%)
Total Dealloc: 592 B → 616 B (+4.1%)
Mem Diff: 735.4 KB → 810.8 KB (+10.3%)

+-----------------+--------------------------------------+-----------+---------------------------------+--------------------------+---------------------------------+
| Thread          | CPU % Avg                            | CPU % Max | Alloc                           | Dealloc                  | Mem Diff                        |
+-----------------+--------------------------------------+-----------+---------------------------------+--------------------------+---------------------------------+
| dev_perf        | 95018.90% → 222359.50% (+134.0%) ⚠️  |           | 735.6 KB → 810.9 KB (+10.2%)    | 520 B → 520 B (+0.0%)    | 735.1 KB → 810.4 KB (+10.2%)    |
+-----------------+--------------------------------------+-----------+---------------------------------+--------------------------+---------------------------------+
| hp-server       | 0.00% → 0.00% (+0.0%)                |           | 352 B → 488 B (+38.6%) ⚠️       | 24 B → 24 B (+0.0%)      | 328 B → 464 B (+41.5%) ⚠️       |
+-----------------+--------------------------------------+-----------+---------------------------------+--------------------------+---------------------------------+
| hp-cpu-baseline | 0.00% → 0.00% (+0.0%)                |           | 15 B → 15 B (+0.0%)             | 24 B → 24 B (+0.0%)      | -9 B → -9 B (+0.0%)             |
+-----------------+--------------------------------------+-----------+---------------------------------+--------------------------+---------------------------------+
| hp-functions    | 0.00% → 0.00% (+0.0%)                |           |                                 |                          |                                 |
+-----------------+--------------------------------------+-----------+---------------------------------+--------------------------+---------------------------------+
| hp-threads      | 0.00% → 0.00% (+0.0%)                |           |                                 |                          |                                 |
+-----------------+--------------------------------------+-----------+---------------------------------+--------------------------+---------------------------------+

Generated with hotpath-rs

@github-actions
Copy link
Copy Markdown

github-actions bot commented Apr 7, 2026

Performance Comparison mainfeat/hotreload

Total Elapsed Time: 66.05ms → 73.99ms (+12.0%)
CPU Baseline: 79.81µs → 80.21µs (+0.5%)
Benchmark ID: timing

timing - Execution duration of functions.

+-----------------------------------+--------------------------+----------------------------------+-----------------------------------+----------------------------------+-----------------------------------+-----------------------------------+----------------------------------+------------------------------+
| Function                          | Calls                    | Avg                              | P33                               | P66                              | P95                               | P99                               | Total                            | % Total                      |
+-----------------------------------+--------------------------+----------------------------------+-----------------------------------+----------------------------------+-----------------------------------+-----------------------------------+----------------------------------+------------------------------+
| dev_perf::main                    | 1 → 1 (+0.0%)            | 65.66ms → 73.67ms (+12.2%)       | 65.67ms → 73.73ms (+12.3%)        | 65.67ms → 73.73ms (+12.3%)       | 65.67ms → 73.73ms (+12.3%)        | 65.67ms → 73.73ms (+12.3%)        | 65.66ms → 73.67ms (+12.2%)       | 100.00% → 100.00% (+0.0%)    |
+-----------------------------------+--------------------------+----------------------------------+-----------------------------------+----------------------------------+-----------------------------------+-----------------------------------+----------------------------------+------------------------------+
| runner::run_scope                 | 32025 → 32025 (+0.0%)    | 1.63µs → 1.58µs (-3.1%)          | 20.00ns → 20.00ns (+0.0%)         | 29.00ns → 30.00ns (+3.4%)        | 31.00ns → 31.00ns (+0.0%)         | 31.00ns → 40.00ns (+29.0%) ⚠️     | 52.13ms → 50.59ms (-3.0%)        | 79.39% → 68.67% (-13.5%)     |
+-----------------------------------+--------------------------+----------------------------------+-----------------------------------+----------------------------------+-----------------------------------+-----------------------------------+----------------------------------+------------------------------+
| runner::sync_and_update           | 3 → 3 (+0.0%)            | 12.74ms → 13.41ms (+5.3%)        | 7.03ms → 8.54ms (+21.5%) ⚠️       | 7.87ms → 9.21ms (+17.0%)         | 23.33ms → 22.50ms (-3.6%)         | 23.33ms → 22.50ms (-3.6%)         | 38.21ms → 40.22ms (+5.3%)        | 58.19% → 54.60% (-6.2%)      |
+-----------------------------------+--------------------------+----------------------------------+-----------------------------------+----------------------------------+-----------------------------------+-----------------------------------+----------------------------------+------------------------------+
| tree::apply_mutations             | 3 → 3 (+0.0%)            | 8.77ms → 10.64ms (+21.3%) ⚠️     | 1.72ms → 2.85ms (+65.7%) ⚠️       | 8.37ms → 10.75ms (+28.4%) ⚠️     | 16.22ms → 18.35ms (+13.1%)        | 16.22ms → 18.35ms (+13.1%)        | 26.30ms → 31.93ms (+21.4%) ⚠️    | 40.06% → 43.35% (+8.2%)      |
+-----------------------------------+--------------------------+----------------------------------+-----------------------------------+----------------------------------+-----------------------------------+-----------------------------------+----------------------------------+------------------------------+
| path_element::diff                | 32025 → 32025 (+0.0%)    | 446.00ns → 474.00ns (+6.3%)      | 60.00ns → 40.00ns (-33.3%) 🚀     | 60.00ns → 100.00ns (+66.7%) ⚠️   | 160.00ns → 220.00ns (+37.5%) ⚠️   | 431.00ns → 531.00ns (+23.2%) ⚠️   | 14.29ms → 15.21ms (+6.4%)        | 21.76% → 20.65% (-5.1%)      |
+-----------------------------------+--------------------------+----------------------------------+-----------------------------------+----------------------------------+-----------------------------------+-----------------------------------+----------------------------------+------------------------------+
| mutations run                     | 3 → 3 (+0.0%)            | 3.84ms → 4.72ms (+22.9%) ⚠️      | 3.16µs → 5.41µs (+71.2%) ⚠️       | 3.17ms → 3.41ms (+7.6%)          | 8.36ms → 10.75ms (+28.6%) ⚠️      | 8.36ms → 10.75ms (+28.6%) ⚠️      | 11.53ms → 14.16ms (+22.8%) ⚠️    | 17.56% → 19.22% (+9.5%)      |
+-----------------------------------+--------------------------+----------------------------------+-----------------------------------+----------------------------------+-----------------------------------+-----------------------------------+----------------------------------+------------------------------+
| path_element::from_element        | 32025 → 32025 (+0.0%)    | 456.00ns → 413.00ns (-9.4%)      | 40.00ns → 20.00ns (-50.0%) 🚀     | 40.00ns → 40.00ns (+0.0%)        | 51.00ns → 50.00ns (-2.0%)         | 60.00ns → 60.00ns (+0.0%)         | 14.62ms → 13.23ms (-9.5%)        | 22.27% → 17.96% (-19.4%)     |
+-----------------------------------+--------------------------+----------------------------------+-----------------------------------+----------------------------------+-----------------------------------+-----------------------------------+----------------------------------+------------------------------+
| runner::apply_diff                | 6 → 6 (+0.0%)            | 1.45ms → 1.80ms (+24.1%) ⚠️      | 7.53µs → 7.67µs (+1.9%)           | 2.08ms → 2.09ms (+0.5%)          | 2.32ms → 4.13ms (+78.0%) ⚠️       | 2.32ms → 4.13ms (+78.0%) ⚠️       | 8.67ms → 10.78ms (+24.3%) ⚠️     | 13.21% → 14.63% (+10.7%)     |
+-----------------------------------+--------------------------+----------------------------------+-----------------------------------+----------------------------------+-----------------------------------+-----------------------------------+----------------------------------+------------------------------+
| Scope Rendering                   | 2 → 2 (+0.0%)            | 4.39ms → 4.25ms (-3.2%)          | 4.34ms → 4.05ms (-6.7%)           | 4.46ms → 4.46ms (+0.0%)          | 4.46ms → 4.46ms (+0.0%)           | 4.46ms → 4.46ms (+0.0%)           | 8.79ms → 8.51ms (-3.2%)          | 13.38% → 11.55% (-13.7%)     |
+-----------------------------------+--------------------------+----------------------------------+-----------------------------------+----------------------------------+-----------------------------------+-----------------------------------+----------------------------------+------------------------------+
| text style cascade                | 3 → 3 (+0.0%)            | 1.48ms → 2.09ms (+41.2%) ⚠️      | 50.00ns → 121.00ns (+142.0%) ⚠️   | 992.00ns → 2.06µs (+107.7%) ⚠️   | 4.43ms → 6.28ms (+41.8%) ⚠️       | 4.43ms → 6.28ms (+41.8%) ⚠️       | 4.43ms → 6.28ms (+41.8%) ⚠️      | 6.74% → 8.52% (+26.4%) ⚠️    |
+-----------------------------------+--------------------------+----------------------------------+-----------------------------------+----------------------------------+-----------------------------------+-----------------------------------+----------------------------------+------------------------------+
| dirty run                         | 3 → 3 (+0.0%)            | 2.00ms → 1.92ms (-4.0%)          | 361.00ns → 451.00ns (+24.9%) ⚠️   | 1.07µs → 3.30µs (+208.4%) ⚠️     | 5.99ms → 5.76ms (-3.8%)           | 5.99ms → 5.76ms (-3.8%)           | 5.99ms → 5.76ms (-3.8%)          | 9.12% → 7.82% (-14.3%)       |
+-----------------------------------+--------------------------+----------------------------------+-----------------------------------+----------------------------------+-----------------------------------+-----------------------------------+----------------------------------+------------------------------+
| layer cascade                     | 3 → 3 (+0.0%)            | 1.41ms → 1.86ms (+31.9%) ⚠️      | 140.00ns → 140.00ns (+0.0%)       | 1.71ms → 2.74ms (+60.2%) ⚠️      | 2.51ms → 2.84ms (+13.1%)          | 2.51ms → 2.84ms (+13.1%)          | 4.22ms → 5.58ms (+32.2%) ⚠️      | 6.43% → 7.57% (+17.7%)       |
+-----------------------------------+--------------------------+----------------------------------+-----------------------------------+----------------------------------+-----------------------------------+-----------------------------------+----------------------------------+------------------------------+
| runner::handle_events_immediately | 3 → 3 (+0.0%)            | 230.00ns → 350.00ns (+52.2%) ⚠️  | 220.00ns → 251.00ns (+14.1%)      | 231.00ns → 320.00ns (+38.5%) ⚠️  | 240.00ns → 481.00ns (+100.4%) ⚠️  | 240.00ns → 481.00ns (+100.4%) ⚠️  | 691.00ns → 1.05µs (+52.0%) ⚠️    | 0.00% → 0.00% (+0.0%)        |
+-----------------------------------+--------------------------+----------------------------------+-----------------------------------+----------------------------------+-----------------------------------+-----------------------------------+----------------------------------+------------------------------+
| effect cascade                    | 3 → 3 (+0.0%)            | 177.00ns → 283.00ns (+59.9%) ⚠️  | 120.00ns → 270.00ns (+125.0%) ⚠️  | 191.00ns → 270.00ns (+41.4%) ⚠️  | 221.00ns → 311.00ns (+40.7%) ⚠️   | 221.00ns → 311.00ns (+40.7%) ⚠️   | 532.00ns → 851.00ns (+60.0%) ⚠️  | 0.00% → 0.00% (+0.0%)        |
+-----------------------------------+--------------------------+----------------------------------+-----------------------------------+----------------------------------+-----------------------------------+-----------------------------------+----------------------------------+------------------------------+

Threads

+-----------------+--------------------------------------+-----------+
| Thread          | CPU % Avg                            | CPU % Max |
+-----------------+--------------------------------------+-----------+
| dev_perf        | 81652.80% → 512403.20% (+527.5%) ⚠️  |           |
+-----------------+--------------------------------------+-----------+
| hp-functions    | 0.00% → 0.00% (+0.0%)                |           |
+-----------------+--------------------------------------+-----------+
| hp-threads      | 0.00% → 0.00% (+0.0%)                |           |
+-----------------+--------------------------------------+-----------+
| hp-server       | 0.00% → 0.00% (+0.0%)                |           |
+-----------------+--------------------------------------+-----------+
| hp-cpu-baseline | 0.00% → 0.00% (+0.0%)                |           |
+-----------------+--------------------------------------+-----------+

Generated with hotpath-rs

@codecov
Copy link
Copy Markdown

codecov bot commented Apr 7, 2026

Codecov Report

❌ Patch coverage is 10.14493% with 62 lines in your changes missing coverage. Please review.
✅ Project coverage is 61.20%. Comparing base (a313360) to head (b5a2b7c).

Files with missing lines Patch % Lines
crates/freya-core/src/runner.rs 5.55% 34 Missing ⚠️
crates/freya-core/src/lifecycle/context.rs 0.00% 12 Missing ⚠️
crates/freya-router/src/components/router.rs 0.00% 6 Missing ⚠️
crates/freya-core/src/scope.rs 0.00% 5 Missing ⚠️
crates/freya-winit/src/window.rs 0.00% 3 Missing ⚠️
crates/freya-core/src/helpers.rs 50.00% 1 Missing ⚠️
crates/freya-winit/src/renderer.rs 0.00% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1761      +/-   ##
==========================================
- Coverage   61.29%   61.20%   -0.09%     
==========================================
  Files         310      310              
  Lines       39444    39505      +61     
==========================================
+ Hits        24177    24180       +3     
- Misses      15267    15325      +58     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@github-actions
Copy link
Copy Markdown

Benchmark for 1bccec5

Click to view benchmark
Test Base PR %
benchmarks/alignments=true size=21845 depth=8 wide=4 mode=not cached 1012.5±21.65µs 1010.0±23.78µs -0.25%
benchmarks/size=100001 depth=2 wide=100000 mode=not cached 6.5±0.42ms 6.4±0.52ms -1.54%
benchmarks/size=10001 depth=2 wide=10000 mode=not cached 332.1±147.36µs 324.8±135.67µs -2.20%
benchmarks/size=1001 depth=2 wide=1000 mode=not cached 28.3±24.33µs 27.5±22.74µs -2.83%
benchmarks/size=131071 depth=17 wide=2 mode=not cached 11.2±0.13ms 11.0±0.16ms -1.79%
benchmarks/size=16383 depth=14 wide=2 mode=not cached 888.5±67.29µs 916.9±74.76µs +3.20%
benchmarks/size=19531 depth=7 wide=5 mode=cached 849.9±23.97µs 865.3±25.07µs +1.81%
benchmarks/size=19531 depth=7 wide=5 mode=not cached 854.0±24.93µs 870.2±90.02µs +1.90%
benchmarks/size=4095 depth=12 wide=2 mode=not cached 196.0±132.70µs 194.8±95.78µs -0.61%
benchmarks/size=54241 depth=5 wide=15 mode=cached 700.1±50.21µs 683.1±23.78µs -2.43%
benchmarks/size=54241 depth=5 wide=15 mode=not cached 688.0±84.06µs 695.4±115.82µs +1.08%

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

Labels

enhancement 🔥 New feature or request

Projects

Status: In Progress

Development

Successfully merging this pull request may close these issues.

2 participants