Skip to content

feat(core): Readable/Writable mapping#1931

Merged
marc2332 merged 2 commits into
mainfrom
feat/readable-writable-mapping
Jun 4, 2026
Merged

feat(core): Readable/Writable mapping#1931
marc2332 merged 2 commits into
mainfrom
feat/readable-writable-mapping

Conversation

@marc2332

@marc2332 marc2332 commented Jun 2, 2026

Copy link
Copy Markdown
Owner

No description provided.

@marc2332 marc2332 added this to the 0.4.0 milestone Jun 2, 2026
@marc2332 marc2332 self-assigned this Jun 2, 2026
@marc2332 marc2332 added the enhancement 🔥 New feature or request label Jun 2, 2026
@marc2332 marc2332 moved this to Pending for Review in Freya Planning Jun 2, 2026
@github-actions

github-actions Bot commented Jun 2, 2026

Copy link
Copy Markdown

Performance Comparison mainfeat/readable-writable-mapping

Total Elapsed Time: 72.86ms → 66.53ms (-8.7%)
CPU Baseline: 80.95µs → 90.69µs (+12.0%)
Benchmark ID: alloc

timing - Function execution time metrics.

+-----------------------------------+--------------------------+--------------------------------+----------------------------------+--------------------------------+----------------------------------+----------------------------------+--------------------------------+------------------------------+
| Function                          | Calls                    | Avg                            | P33                              | P66                            | P95                              | P99                              | Total                          | % Total                      |
+-----------------------------------+--------------------------+--------------------------------+----------------------------------+--------------------------------+----------------------------------+----------------------------------+--------------------------------+------------------------------+
| dev_perf::main                    | 1 → 1 (+0.0%)            | 72.52ms → 66.27ms (-8.6%)      | 72.55ms → 66.29ms (-8.6%)        | 72.55ms → 66.29ms (-8.6%)      | 72.55ms → 66.29ms (-8.6%)        | 72.55ms → 66.29ms (-8.6%)        | 72.50ms → 66.26ms (-8.6%)      | 100.00% → 100.00% (+0.0%)    |
+-----------------------------------+--------------------------+--------------------------------+----------------------------------+--------------------------------+----------------------------------+----------------------------------+--------------------------------+------------------------------+
| runner::run_scope                 | 32025 → 32025 (+0.0%)    | 1.43µs → 1.38µs (-3.5%)        | 10.00ns → 10.00ns (+0.0%)        | 20.00ns → 20.00ns (+0.0%)      | 20.00ns → 20.00ns (+0.0%)        | 30.00ns → 30.00ns (+0.0%)        | 45.79ms → 44.11ms (-3.7%)      | 63.17% → 66.56% (+5.4%)      |
+-----------------------------------+--------------------------+--------------------------------+----------------------------------+--------------------------------+----------------------------------+----------------------------------+--------------------------------+------------------------------+
| runner::sync_and_update           | 3 → 3 (+0.0%)            | 12.49ms → 11.95ms (-4.3%)      | 7.59ms → 7.16ms (-5.7%)          | 8.84ms → 8.48ms (-4.1%)        | 21.05ms → 20.22ms (-3.9%)        | 21.05ms → 20.22ms (-3.9%)        | 37.48ms → 35.84ms (-4.4%)      | 51.70% → 54.09% (+4.6%)      |
+-----------------------------------+--------------------------+--------------------------------+----------------------------------+--------------------------------+----------------------------------+----------------------------------+--------------------------------+------------------------------+
| tree::apply_mutations             | 3 → 3 (+0.0%)            | 11.18ms → 9.64ms (-13.8%)      | 2.92ms → 2.13ms (-27.1%) 🚀      | 11.13ms → 9.82ms (-11.8%)      | 19.50ms → 16.99ms (-12.9%)       | 19.50ms → 16.99ms (-12.9%)       | 33.54ms → 28.93ms (-13.7%)     | 46.26% → 43.67% (-5.6%)      |
+-----------------------------------+--------------------------+--------------------------------+----------------------------------+--------------------------------+----------------------------------+----------------------------------+--------------------------------+------------------------------+
| path_element::from_element        | 32025 → 32025 (+0.0%)    | 453.00ns → 450.00ns (-0.7%)    | 40.00ns → 40.00ns (+0.0%)        | 50.00ns → 50.00ns (+0.0%)      | 70.00ns → 70.00ns (+0.0%)        | 80.00ns → 80.00ns (+0.0%)        | 14.52ms → 14.42ms (-0.7%)      | 20.03% → 21.76% (+8.6%)      |
+-----------------------------------+--------------------------+--------------------------------+----------------------------------+--------------------------------+----------------------------------+----------------------------------+--------------------------------+------------------------------+
| mutations run                     | 3 → 3 (+0.0%)            | 4.61ms → 4.31ms (-6.5%)        | 5.51µs → 3.84µs (-30.3%) 🚀      | 2.70ms → 3.10ms (+14.8%)       | 11.12ms → 9.82ms (-11.7%)        | 11.12ms → 9.82ms (-11.7%)        | 13.83ms → 12.92ms (-6.6%)      | 19.07% → 19.49% (+2.2%)      |
+-----------------------------------+--------------------------+--------------------------------+----------------------------------+--------------------------------+----------------------------------+----------------------------------+--------------------------------+------------------------------+
| path_element::diff                | 32025 → 32025 (+0.0%)    | 391.00ns → 377.00ns (-3.6%)    | 50.00ns → 50.00ns (+0.0%)        | 51.00ns → 51.00ns (+0.0%)      | 170.00ns → 160.00ns (-5.9%)      | 631.00ns → 562.00ns (-10.9%)     | 12.53ms → 12.09ms (-3.5%)      | 17.29% → 18.24% (+5.5%)      |
+-----------------------------------+--------------------------+--------------------------------+----------------------------------+--------------------------------+----------------------------------+----------------------------------+--------------------------------+------------------------------+
| runner::apply_diff                | 6 → 6 (+0.0%)            | 1.51ms → 1.47ms (-2.6%)        | 7.04µs → 5.01µs (-28.8%) 🚀      | 2.28ms → 2.15ms (-5.7%)        | 2.52ms → 2.52ms (+0.0%)          | 2.52ms → 2.52ms (+0.0%)          | 9.06ms → 8.82ms (-2.6%)        | 12.50% → 13.32% (+6.6%)      |
+-----------------------------------+--------------------------+--------------------------------+----------------------------------+--------------------------------+----------------------------------+----------------------------------+--------------------------------+------------------------------+
| Scope Rendering                   | 2 → 2 (+0.0%)            | 4.43ms → 4.12ms (-7.0%)        | 4.36ms → 3.80ms (-12.8%)         | 4.51ms → 4.44ms (-1.6%)        | 4.51ms → 4.44ms (-1.6%)          | 4.51ms → 4.44ms (-1.6%)          | 8.86ms → 8.24ms (-7.0%)        | 12.23% → 12.44% (+1.7%)      |
+-----------------------------------+--------------------------+--------------------------------+----------------------------------+--------------------------------+----------------------------------+----------------------------------+--------------------------------+------------------------------+
| text style cascade                | 3 → 3 (+0.0%)            | 1.84ms → 1.89ms (+2.7%)        | 130.00ns → 130.00ns (+0.0%)      | 1.78µs → 1.35µs (-24.2%) 🚀    | 5.52ms → 5.67ms (+2.7%)          | 5.52ms → 5.67ms (+2.7%)          | 5.52ms → 5.67ms (+2.7%)        | 7.62% → 8.56% (+12.3%)       |
+-----------------------------------+--------------------------+--------------------------------+----------------------------------+--------------------------------+----------------------------------+----------------------------------+--------------------------------+------------------------------+
| dirty run                         | 3 → 3 (+0.0%)            | 2.22ms → 1.81ms (-18.5%)       | 942.00ns → 331.00ns (-64.9%) 🚀  | 2.12µs → 1.76µs (-17.0%)       | 6.65ms → 5.43ms (-18.3%)         | 6.65ms → 5.43ms (-18.3%)         | 6.65ms → 5.43ms (-18.3%)       | 9.18% → 8.19% (-10.8%)       |
+-----------------------------------+--------------------------+--------------------------------+----------------------------------+--------------------------------+----------------------------------+----------------------------------+--------------------------------+------------------------------+
| layer cascade                     | 3 → 3 (+0.0%)            | 2.43ms → 1.60ms (-34.2%) 🚀    | 160.00ns → 150.00ns (-6.2%)      | 2.91ms → 2.12ms (-27.1%) 🚀    | 4.37ms → 2.68ms (-38.7%) 🚀      | 4.37ms → 2.68ms (-38.7%) 🚀      | 7.28ms → 4.80ms (-34.1%) 🚀    | 10.04% → 7.24% (-27.9%) 🚀   |
+-----------------------------------+--------------------------+--------------------------------+----------------------------------+--------------------------------+----------------------------------+----------------------------------+--------------------------------+------------------------------+
| runner::handle_events_immediately | 3 → 3 (+0.0%)            | 304.00ns → 291.00ns (-4.3%)    | 170.00ns → 251.00ns (+47.6%) ⚠️  | 301.00ns → 301.00ns (+0.0%)    | 441.00ns → 321.00ns (-27.2%) 🚀  | 441.00ns → 321.00ns (-27.2%) 🚀  | 912.00ns → 873.00ns (-4.3%)    | 0.00% → 0.00% (+0.0%)        |
+-----------------------------------+--------------------------+--------------------------------+----------------------------------+--------------------------------+----------------------------------+----------------------------------+--------------------------------+------------------------------+
| effect cascade                    | 3 → 3 (+0.0%)            | 147.00ns → 137.00ns (-6.8%)    | 130.00ns → 130.00ns (+0.0%)      | 150.00ns → 140.00ns (-6.7%)    | 161.00ns → 141.00ns (-12.4%)     | 161.00ns → 141.00ns (-12.4%)     | 441.00ns → 411.00ns (-6.8%)    | 0.00% → 0.00% (+0.0%)        |
+-----------------------------------+--------------------------+--------------------------------+----------------------------------+--------------------------------+----------------------------------+----------------------------------+--------------------------------+------------------------------+

alloc-bytes - Exclusive allocation bytes by each function (excluding nested calls).

+-----------------------------------+--------------------------+------------------------------+--------------------------------+------------------------------+--------------------------------+--------------------------------+--------------------------------+----------------------------+
| Function                          | Calls                    | Avg                          | P33                            | P66                          | P95                            | P99                            | Total                          | % Total                    |
+-----------------------------------+--------------------------+------------------------------+--------------------------------+------------------------------+--------------------------------+--------------------------------+--------------------------------+----------------------------+
| Scope Rendering                   | 2 → 2 (+0.0%)            | 6.9 MB → 6.9 MB (+0.0%)      | 6.9 MB → 6.9 MB (+0.0%)        | 6.9 MB → 6.9 MB (+0.0%)      | 6.9 MB → 6.9 MB (+0.0%)        | 6.9 MB → 6.9 MB (+0.0%)        | 13.8 MB → 13.8 MB (+0.0%)      | 22.23% → 22.23% (+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.13% → 15.13% (+0.0%)    |
+-----------------------------------+--------------------------+------------------------------+--------------------------------+------------------------------+--------------------------------+--------------------------------+--------------------------------+----------------------------+
| text style cascade                | 3 → 3 (+0.0%)            | 2.8 MB → 2.8 MB (+0.0%)      | 84 B → 84 B (+0.0%)            | 8.3 MB → 8.3 MB (+0.0%)      | 8.3 MB → 8.3 MB (+0.0%)        | 8.3 MB → 8.3 MB (+0.0%)        | 8.3 MB → 8.3 MB (+0.0%)        | 13.37% → 13.37% (+0.0%)    |
+-----------------------------------+--------------------------+------------------------------+--------------------------------+------------------------------+--------------------------------+--------------------------------+--------------------------------+----------------------------+
| runner::sync_and_update           | 3 → 3 (+0.0%)            | 2.8 MB → 2.8 MB (+0.0%)      | 1.1 KB → 1.1 KB (+0.0%)        | 1.4 MB → 1.4 MB (+0.0%)      | 6.9 MB → 6.9 MB (+0.0%)        | 6.9 MB → 6.9 MB (+0.0%)        | 8.3 MB → 8.3 MB (+0.0%)        | 13.35% → 13.35% (+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.21% → 12.21% (+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.76% → 6.76% (+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%)        | 5.97% → 5.97% (+0.0%)      |
+-----------------------------------+--------------------------+------------------------------+--------------------------------+------------------------------+--------------------------------+--------------------------------+--------------------------------+----------------------------+
| path_element::from_element        | 32025 → 32025 (+0.0%)    | 107 B → 107 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%)            | 3.3 MB → 3.3 MB (+0.0%)        | 5.32% → 5.32% (+0.0%)      |
+-----------------------------------+--------------------------+------------------------------+--------------------------------+------------------------------+--------------------------------+--------------------------------+--------------------------------+----------------------------+
| path_element::diff                | 32025 → 32025 (+0.0%)    | 104 B → 104 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%)            | 3.2 MB → 3.2 MB (+0.0%)        | 5.14% → 5.14% (+0.0%)      |
+-----------------------------------+--------------------------+------------------------------+--------------------------------+------------------------------+--------------------------------+--------------------------------+--------------------------------+----------------------------+
| tree::apply_mutations             | 3 → 3 (+0.0%)            | 96.3 KB → 96.3 KB (+0.0%)    | 52 B → 52 B (+0.0%)            | 52 B → 52 B (+0.0%)          | 289.0 KB → 289.0 KB (+0.0%)    | 289.0 KB → 289.0 KB (+0.0%)    | 289.0 KB → 289.0 KB (+0.0%)    | 0.46% → 0.46% (+0.0%)      |
+-----------------------------------+--------------------------+------------------------------+--------------------------------+------------------------------+--------------------------------+--------------------------------+--------------------------------+----------------------------+
| dev_perf::main                    | 1 → 1 (+0.0%)            | 35.9 KB → 35.9 KB (+0.0%)    | 35.9 KB → 35.9 KB (+0.0%)      | 35.9 KB → 35.9 KB (+0.0%)    | 35.9 KB → 35.9 KB (+0.0%)      | 35.9 KB → 35.9 KB (+0.0%)      | 35.9 KB → 35.9 KB (+0.0%)      | 0.06% → 0.06% (+0.0%)      |
+-----------------------------------+--------------------------+------------------------------+--------------------------------+------------------------------+--------------------------------+--------------------------------+--------------------------------+----------------------------+
| runner::run_scope                 | 32025 → 32025 (+0.0%)    | 0 B → 0 B (+0.0%)            | 52 B → 52 B (+0.0%)            | 88 B → 88 B (+0.0%)          | 492 B → 492 B (+0.0%)          | 492 B → 492 B (+0.0%)          | 1.2 KB → 1.2 KB (+0.0%)        | 0.00% → 0.00% (+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: 839.6 KB → 874.7 KB (+4.2%)
Total Dealloc: 672 B → 696 B (+3.6%)
Mem Diff: 838.9 KB → 874.0 KB (+4.2%)

+-----------------+----------------------------------+-----------+--------------------------------+--------------------------+--------------------------------+
| Thread          | CPU % Avg                        | CPU % Max | Alloc                          | Dealloc                  | Mem Diff                       |
+-----------------+----------------------------------+-----------+--------------------------------+--------------------------+--------------------------------+
| dev_perf        | 83145.30% → 90163.50% (+8.4%)    |           | 838.9 KB → 874.1 KB (+4.2%)    | 576 B → 576 B (+0.0%)    | 838.4 KB → 873.5 KB (+4.2%)    |
+-----------------+----------------------------------+-----------+--------------------------------+--------------------------+--------------------------------+
| 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

github-actions Bot commented Jun 2, 2026

Copy link
Copy Markdown

Performance Comparison mainfeat/readable-writable-mapping

Total Elapsed Time: 62.09ms → 62.16ms (+0.1%)
CPU Baseline: 101.01µs → 104.84µs (+3.8%)
Benchmark ID: timing

timing - Execution duration of functions.

+-----------------------------------+--------------------------+----------------------------------+----------------------------------+----------------------------------+----------------------------------+----------------------------------+----------------------------------+------------------------------+
| Function                          | Calls                    | Avg                              | P33                              | P66                              | P95                              | P99                              | Total                            | % Total                      |
+-----------------------------------+--------------------------+----------------------------------+----------------------------------+----------------------------------+----------------------------------+----------------------------------+----------------------------------+------------------------------+
| dev_perf::main                    | 1 → 1 (+0.0%)            | 61.84ms → 61.88ms (+0.1%)        | 61.87ms → 61.90ms (+0.0%)        | 61.87ms → 61.90ms (+0.0%)        | 61.87ms → 61.90ms (+0.0%)        | 61.87ms → 61.90ms (+0.0%)        | 61.84ms → 61.88ms (+0.1%)        | 100.00% → 100.00% (+0.0%)    |
+-----------------------------------+--------------------------+----------------------------------+----------------------------------+----------------------------------+----------------------------------+----------------------------------+----------------------------------+------------------------------+
| runner::run_scope                 | 32025 → 32025 (+0.0%)    | 1.21µs → 1.23µs (+1.7%)          | 10.00ns → 10.00ns (+0.0%)        | 20.00ns → 20.00ns (+0.0%)        | 29.00ns → 20.00ns (-31.0%) 🚀    | 40.00ns → 31.00ns (-22.5%) 🚀    | 38.90ms → 39.41ms (+1.3%)        | 62.89% → 63.69% (+1.3%)      |
+-----------------------------------+--------------------------+----------------------------------+----------------------------------+----------------------------------+----------------------------------+----------------------------------+----------------------------------+------------------------------+
| runner::sync_and_update           | 3 → 3 (+0.0%)            | 10.92ms → 10.90ms (-0.2%)        | 6.43ms → 6.46ms (+0.5%)          | 8.44ms → 8.04ms (-4.7%)          | 17.91ms → 18.24ms (+1.8%)        | 17.91ms → 18.24ms (+1.8%)        | 32.76ms → 32.71ms (-0.2%)        | 52.98% → 52.87% (-0.2%)      |
+-----------------------------------+--------------------------+----------------------------------+----------------------------------+----------------------------------+----------------------------------+----------------------------------+----------------------------------+------------------------------+
| tree::apply_mutations             | 3 → 3 (+0.0%)            | 9.29ms → 9.29ms (+0.0%)          | 1.92ms → 2.05ms (+6.8%)          | 8.99ms → 9.67ms (+7.6%)          | 16.97ms → 16.15ms (-4.8%)        | 16.97ms → 16.15ms (-4.8%)        | 27.87ms → 27.86ms (-0.0%)        | 45.07% → 45.03% (-0.1%)      |
+-----------------------------------+--------------------------+----------------------------------+----------------------------------+----------------------------------+----------------------------------+----------------------------------+----------------------------------+------------------------------+
| mutations run                     | 3 → 3 (+0.0%)            | 4.26ms → 4.24ms (-0.5%)          | 3.21µs → 3.37µs (+5.0%)          | 3.79ms → 3.07ms (-19.0%)         | 8.99ms → 9.67ms (+7.6%)          | 8.99ms → 9.67ms (+7.6%)          | 12.78ms → 12.73ms (-0.4%)        | 20.67% → 20.58% (-0.4%)      |
+-----------------------------------+--------------------------+----------------------------------+----------------------------------+----------------------------------+----------------------------------+----------------------------------+----------------------------------+------------------------------+
| path_element::diff                | 32025 → 32025 (+0.0%)    | 331.00ns → 318.00ns (-3.9%)      | 30.00ns → 30.00ns (+0.0%)        | 50.00ns → 50.00ns (+0.0%)        | 160.00ns → 150.00ns (-6.2%)      | 611.00ns → 592.00ns (-3.1%)      | 10.62ms → 10.20ms (-4.0%)        | 17.18% → 16.49% (-4.0%)      |
+-----------------------------------+--------------------------+----------------------------------+----------------------------------+----------------------------------+----------------------------------+----------------------------------+----------------------------------+------------------------------+
| path_element::from_element        | 32025 → 32025 (+0.0%)    | 320.00ns → 314.00ns (-1.9%)      | 20.00ns → 20.00ns (+0.0%)        | 30.00ns → 30.00ns (+0.0%)        | 41.00ns → 40.00ns (-2.4%)        | 51.00ns → 50.00ns (-2.0%)        | 10.25ms → 10.09ms (-1.6%)        | 16.57% → 16.30% (-1.6%)      |
+-----------------------------------+--------------------------+----------------------------------+----------------------------------+----------------------------------+----------------------------------+----------------------------------+----------------------------------+------------------------------+
| Scope Rendering                   | 2 → 2 (+0.0%)            | 4.32ms → 4.24ms (-1.9%)          | 4.13ms → 3.94ms (-4.6%)          | 4.51ms → 4.53ms (+0.4%)          | 4.51ms → 4.53ms (+0.4%)          | 4.51ms → 4.53ms (+0.4%)          | 8.63ms → 8.47ms (-1.9%)          | 13.96% → 13.69% (-1.9%)      |
+-----------------------------------+--------------------------+----------------------------------+----------------------------------+----------------------------------+----------------------------------+----------------------------------+----------------------------------+------------------------------+
| runner::apply_diff                | 6 → 6 (+0.0%)            | 1.34ms → 1.39ms (+3.7%)          | 8.11µs → 7.16µs (-11.7%)         | 1.71ms → 1.93ms (+12.9%)         | 2.56ms → 2.50ms (-2.3%)          | 2.56ms → 2.50ms (-2.3%)          | 8.03ms → 8.36ms (+4.1%)          | 12.99% → 13.52% (+4.1%)      |
+-----------------------------------+--------------------------+----------------------------------+----------------------------------+----------------------------------+----------------------------------+----------------------------------+----------------------------------+------------------------------+
| dirty run                         | 3 → 3 (+0.0%)            | 1.73ms → 1.83ms (+5.8%)          | 421.00ns → 531.00ns (+26.1%) ⚠️  | 1.77µs → 2.25µs (+27.1%) ⚠️      | 5.20ms → 5.48ms (+5.4%)          | 5.20ms → 5.48ms (+5.4%)          | 5.20ms → 5.49ms (+5.6%)          | 8.41% → 8.86% (+5.4%)        |
+-----------------------------------+--------------------------+----------------------------------+----------------------------------+----------------------------------+----------------------------------+----------------------------------+----------------------------------+------------------------------+
| text style cascade                | 3 → 3 (+0.0%)            | 1.79ms → 1.64ms (-8.4%)          | 50.00ns → 121.00ns (+142.0%) ⚠️  | 1.12µs → 1.17µs (+4.5%)          | 5.37ms → 4.91ms (-8.6%)          | 5.37ms → 4.91ms (-8.6%)          | 5.37ms → 4.91ms (-8.6%)          | 8.68% → 7.93% (-8.6%)        |
+-----------------------------------+--------------------------+----------------------------------+----------------------------------+----------------------------------+----------------------------------+----------------------------------+----------------------------------+------------------------------+
| layer cascade                     | 3 → 3 (+0.0%)            | 1.46ms → 1.54ms (+5.5%)          | 150.00ns → 141.00ns (-6.0%)      | 1.91ms → 2.04ms (+6.8%)          | 2.46ms → 2.57ms (+4.5%)          | 2.46ms → 2.57ms (+4.5%)          | 4.37ms → 4.61ms (+5.5%)          | 7.07% → 7.45% (+5.4%)        |
+-----------------------------------+--------------------------+----------------------------------+----------------------------------+----------------------------------+----------------------------------+----------------------------------+----------------------------------+------------------------------+
| runner::handle_events_immediately | 3 → 3 (+0.0%)            | 317.00ns → 210.00ns (-33.8%) 🚀  | 231.00ns → 180.00ns (-22.1%) 🚀  | 351.00ns → 220.00ns (-37.3%) 🚀  | 371.00ns → 230.00ns (-38.0%) 🚀  | 371.00ns → 230.00ns (-38.0%) 🚀  | 953.00ns → 630.00ns (-33.9%) 🚀  | 0.00% → 0.00% (+0.0%)        |
+-----------------------------------+--------------------------+----------------------------------+----------------------------------+----------------------------------+----------------------------------+----------------------------------+----------------------------------+------------------------------+
| effect cascade                    | 3 → 3 (+0.0%)            | 174.00ns → 190.00ns (+9.2%)      | 81.00ns → 70.00ns (-13.6%)       | 161.00ns → 240.00ns (+49.1%) ⚠️  | 280.00ns → 260.00ns (-7.1%)      | 280.00ns → 260.00ns (-7.1%)      | 522.00ns → 570.00ns (+9.2%)      | 0.00% → 0.00% (+0.0%)        |
+-----------------------------------+--------------------------+----------------------------------+----------------------------------+----------------------------------+----------------------------------+----------------------------------+----------------------------------+------------------------------+

Threads

+-----------------+--------------------------------------+-----------+
| Thread          | CPU % Avg                            | CPU % Max |
+-----------------+--------------------------------------+-----------+
| dev_perf        | 80607.60% → 567146.00% (+603.6%) ⚠️  |           |
+-----------------+--------------------------------------+-----------+
| 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

codecov Bot commented Jun 2, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 31.37255% with 35 lines in your changes missing coverage. Please review.
✅ Project coverage is 60.33%. Comparing base (c61fbfa) to head (248da44).
⚠️ Report is 1 commits behind head on main.

Files with missing lines Patch % Lines
crates/freya-core/src/lifecycle/readable.rs 21.42% 22 Missing ⚠️
crates/freya-core/src/lifecycle/writable.rs 40.00% 12 Missing ⚠️
crates/freya-radio/src/readable.rs 50.00% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1931      +/-   ##
==========================================
- Coverage   60.38%   60.33%   -0.06%     
==========================================
  Files         326      326              
  Lines       41867    41894      +27     
==========================================
- Hits        25283    25276       -7     
- Misses      16584    16618      +34     

☔ 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.

@marc2332 marc2332 merged commit 6c26a86 into main Jun 4, 2026
15 of 16 checks passed
@marc2332 marc2332 deleted the feat/readable-writable-mapping branch June 4, 2026 21:40
@github-project-automation github-project-automation Bot moved this from Pending for Review to Done in Freya Planning Jun 4, 2026
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: Done

Development

Successfully merging this pull request may close these issues.

1 participant