Skip to content

feat(components): Per item virtual scroll view sizing#1985

Open
marc2332 wants to merge 7 commits into
mainfrom
feat/per-item-size-virtual-scrollview
Open

feat(components): Per item virtual scroll view sizing#1985
marc2332 wants to merge 7 commits into
mainfrom
feat/per-item-size-virtual-scrollview

Conversation

@marc2332

Copy link
Copy Markdown
Owner

No description provided.

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

github-actions Bot commented Jun 29, 2026

Copy link
Copy Markdown

Performance Comparison mainfeat/per-item-size-virtual-scrollview

Total Elapsed Time: 74.20ms → 66.91ms (-9.8%)
CPU Baseline: 89.23µs → 91.08µs (+2.1%)
Benchmark ID: alloc

timing - Function execution time metrics.

+-----------------------------------+--------------------------+-----------------------------------+----------------------------------+----------------------------------+-----------------------------------+-----------------------------------+-----------------------------------+------------------------------+
| Function                          | Calls                    | Avg                               | P33                              | P66                              | P95                               | P99                               | Total                             | % Total                      |
+-----------------------------------+--------------------------+-----------------------------------+----------------------------------+----------------------------------+-----------------------------------+-----------------------------------+-----------------------------------+------------------------------+
| dev_perf::main                    | 1 → 1 (+0.0%)            | 73.89ms → 66.60ms (-9.9%)         | 73.92ms → 66.62ms (-9.9%)        | 73.92ms → 66.62ms (-9.9%)        | 73.92ms → 66.62ms (-9.9%)         | 73.92ms → 66.62ms (-9.9%)         | 73.89ms → 66.61ms (-9.9%)         | 100.00% → 100.00% (+0.0%)    |
+-----------------------------------+--------------------------+-----------------------------------+----------------------------------+----------------------------------+-----------------------------------+-----------------------------------+-----------------------------------+------------------------------+
| runner::run_scope                 | 32025 → 32025 (+0.0%)    | 1.67µs → 1.38µs (-17.4%)          | 29.00ns → 10.00ns (-65.5%) 🚀    | 30.00ns → 20.00ns (-33.3%) 🚀    | 31.00ns → 20.00ns (-35.5%) 🚀     | 40.00ns → 30.00ns (-25.0%) 🚀     | 53.35ms → 44.27ms (-17.0%)        | 72.20% → 66.45% (-8.0%)      |
+-----------------------------------+--------------------------+-----------------------------------+----------------------------------+----------------------------------+-----------------------------------+-----------------------------------+-----------------------------------+------------------------------+
| runner::sync_and_update           | 3 → 3 (+0.0%)            | 14.09ms → 12.16ms (-13.7%)        | 8.96ms → 7.65ms (-14.6%)         | 9.67ms → 8.50ms (-12.1%)         | 23.66ms → 20.37ms (-13.9%)        | 23.66ms → 20.37ms (-13.9%)        | 42.29ms → 36.49ms (-13.7%)        | 57.23% → 54.78% (-4.3%)      |
+-----------------------------------+--------------------------+-----------------------------------+----------------------------------+----------------------------------+-----------------------------------+-----------------------------------+-----------------------------------+------------------------------+
| tree::apply_mutations             | 3 → 3 (+0.0%)            | 10.04ms → 9.58ms (-4.6%)          | 2.47ms → 2.62ms (+6.1%)          | 9.90ms → 9.68ms (-2.2%)          | 17.78ms → 16.44ms (-7.5%)         | 17.78ms → 16.44ms (-7.5%)         | 30.14ms → 28.74ms (-4.6%)         | 40.78% → 43.15% (+5.8%)      |
+-----------------------------------+--------------------------+-----------------------------------+----------------------------------+----------------------------------+-----------------------------------+-----------------------------------+-----------------------------------+------------------------------+
| path_element::from_element        | 32025 → 32025 (+0.0%)    | 648.00ns → 439.00ns (-32.3%) 🚀   | 70.00ns → 40.00ns (-42.9%) 🚀    | 70.00ns → 50.00ns (-28.6%) 🚀    | 90.00ns → 61.00ns (-32.2%) 🚀     | 130.00ns → 71.00ns (-45.4%) 🚀    | 20.75ms → 14.09ms (-32.1%) 🚀     | 28.09% → 21.15% (-24.7%) 🚀  |
+-----------------------------------+--------------------------+-----------------------------------+----------------------------------+----------------------------------+-----------------------------------+-----------------------------------+-----------------------------------+------------------------------+
| path_element::diff                | 32025 → 32025 (+0.0%)    | 544.00ns → 394.00ns (-27.6%) 🚀   | 60.00ns → 41.00ns (-31.7%) 🚀    | 100.00ns → 51.00ns (-49.0%) 🚀   | 261.00ns → 170.00ns (-34.9%) 🚀   | 481.00ns → 901.00ns (+87.3%) ⚠️   | 17.45ms → 12.62ms (-27.7%) 🚀     | 23.62% → 18.95% (-19.8%)     |
+-----------------------------------+--------------------------+-----------------------------------+----------------------------------+----------------------------------+-----------------------------------+-----------------------------------+-----------------------------------+------------------------------+
| mutations run                     | 3 → 3 (+0.0%)            | 4.22ms → 4.17ms (-1.2%)           | 4.01µs → 4.97µs (+23.9%) ⚠️      | 2.77ms → 2.84ms (+2.5%)          | 9.90ms → 9.68ms (-2.2%)           | 9.90ms → 9.68ms (-2.2%)           | 12.67ms → 12.52ms (-1.2%)         | 17.14% → 18.80% (+9.7%)      |
+-----------------------------------+--------------------------+-----------------------------------+----------------------------------+----------------------------------+-----------------------------------+-----------------------------------+-----------------------------------+------------------------------+
| runner::apply_diff                | 6 → 6 (+0.0%)            | 1.50ms → 1.49ms (-0.7%)           | 5.30µs → 4.89µs (-7.7%)          | 2.22ms → 2.13ms (-4.1%)          | 2.45ms → 2.50ms (+2.0%)           | 2.45ms → 2.50ms (+2.0%)           | 9.02ms → 8.93ms (-1.0%)           | 12.21% → 13.41% (+9.8%)      |
+-----------------------------------+--------------------------+-----------------------------------+----------------------------------+----------------------------------+-----------------------------------+-----------------------------------+-----------------------------------+------------------------------+
| Scope Rendering                   | 2 → 2 (+0.0%)            | 4.28ms → 4.24ms (-0.9%)           | 3.94ms → 4.03ms (+2.3%)          | 4.62ms → 4.46ms (-3.5%)          | 4.62ms → 4.46ms (-3.5%)           | 4.62ms → 4.46ms (-3.5%)           | 8.56ms → 8.49ms (-0.8%)           | 11.58% → 12.74% (+10.0%)     |
+-----------------------------------+--------------------------+-----------------------------------+----------------------------------+----------------------------------+-----------------------------------+-----------------------------------+-----------------------------------+------------------------------+
| dirty run                         | 3 → 3 (+0.0%)            | 2.06ms → 1.84ms (-10.7%)          | 611.00ns → 541.00ns (-11.5%)     | 2.83µs → 2.63µs (-7.1%)          | 6.18ms → 5.53ms (-10.5%)          | 6.18ms → 5.53ms (-10.5%)          | 6.18ms → 5.54ms (-10.4%)          | 8.37% → 8.31% (-0.7%)        |
+-----------------------------------+--------------------------+-----------------------------------+----------------------------------+----------------------------------+-----------------------------------+-----------------------------------+-----------------------------------+------------------------------+
| layer cascade                     | 3 → 3 (+0.0%)            | 1.69ms → 1.77ms (+4.7%)           | 451.00ns → 141.00ns (-68.7%) 🚀  | 2.47ms → 2.61ms (+5.7%)          | 2.61ms → 2.71ms (+3.8%)           | 2.61ms → 2.71ms (+3.8%)           | 5.07ms → 5.32ms (+4.9%)           | 6.86% → 7.99% (+16.5%)       |
+-----------------------------------+--------------------------+-----------------------------------+----------------------------------+----------------------------------+-----------------------------------+-----------------------------------+-----------------------------------+------------------------------+
| text style cascade                | 3 → 3 (+0.0%)            | 2.03ms → 1.74ms (-14.3%)          | 121.00ns → 120.00ns (-0.8%)      | 1.82µs → 1.95µs (+7.1%)          | 6.09ms → 5.23ms (-14.1%)          | 6.09ms → 5.23ms (-14.1%)          | 6.10ms → 5.23ms (-14.3%)          | 8.25% → 7.85% (-4.8%)        |
+-----------------------------------+--------------------------+-----------------------------------+----------------------------------+----------------------------------+-----------------------------------+-----------------------------------+-----------------------------------+------------------------------+
| runner::handle_events_immediately | 3 → 3 (+0.0%)            | 280.00ns → 357.00ns (+27.5%) ⚠️   | 230.00ns → 331.00ns (+43.9%) ⚠️  | 251.00ns → 361.00ns (+43.8%) ⚠️  | 360.00ns → 381.00ns (+5.8%)       | 360.00ns → 381.00ns (+5.8%)       | 841.00ns → 1.07µs (+27.2%) ⚠️     | 0.00% → 0.00% (+0.0%)        |
+-----------------------------------+--------------------------+-----------------------------------+----------------------------------+----------------------------------+-----------------------------------+-----------------------------------+-----------------------------------+------------------------------+
| effect cascade                    | 3 → 3 (+0.0%)            | 103.00ns → 213.00ns (+106.8%) ⚠️  | 49.00ns → 160.00ns (+226.5%) ⚠️  | 130.00ns → 170.00ns (+30.8%) ⚠️  | 130.00ns → 310.00ns (+138.5%) ⚠️  | 130.00ns → 310.00ns (+138.5%) ⚠️  | 309.00ns → 640.00ns (+107.1%) ⚠️  | 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%)            | 7.0 MB → 7.0 MB (+0.0%)      | 7.0 MB → 7.0 MB (+0.0%)        | 7.0 MB → 7.0 MB (+0.0%)      | 7.0 MB → 7.0 MB (+0.0%)        | 7.0 MB → 7.0 MB (+0.0%)        | 13.9 MB → 13.9 MB (+0.0%)      | 22.39% → 22.39% (+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.08% → 15.08% (+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%)      | 7.0 MB → 7.0 MB (+0.0%)        | 7.0 MB → 7.0 MB (+0.0%)        | 8.4 MB → 8.4 MB (+0.0%)        | 13.45% → 13.45% (+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.31% → 13.31% (+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.16% → 12.16% (+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.73% → 6.73% (+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.95% → 5.95% (+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.30% → 5.30% (+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.12% → 5.12% (+0.0%)      |
+-----------------------------------+--------------------------+------------------------------+--------------------------------+------------------------------+--------------------------------+--------------------------------+--------------------------------+----------------------------+
| tree::apply_mutations             | 3 → 3 (+0.0%)            | 96.4 KB → 96.4 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.1 KB → 289.1 KB (+0.0%)    | 0.45% → 0.45% (+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: 621.8 KB → 835.7 KB (+34.4%) ⚠️
Total Dealloc: 648 B → 696 B (+7.4%)
Mem Diff: 621.2 KB → 835.0 KB (+34.4%) ⚠️

+-----------------+-----------------------------------+-----------+----------------------------------+--------------------------+----------------------------------+
| Thread          | CPU % Avg                         | CPU % Max | Alloc                            | Dealloc                  | Mem Diff                         |
+-----------------+-----------------------------------+-----------+----------------------------------+--------------------------+----------------------------------+
| dev_perf        | 103037.80% → 94686.00% (-8.1%)    |           | 621.4 KB → 835.0 KB (+34.4%) ⚠️  | 576 B → 576 B (+0.0%)    | 620.9 KB → 834.5 KB (+34.4%) ⚠️  |
+-----------------+-----------------------------------+-----------+----------------------------------+--------------------------+----------------------------------+
| hp-server       | 0.00% → 0.00% (+0.0%)             |           | 352 B → 624 B (+77.3%) ⚠️        | 24 B → 24 B (+0.0%)      | 328 B → 600 B (+82.9%) ⚠️        |
+-----------------+-----------------------------------+-----------+----------------------------------+--------------------------+----------------------------------+
| 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 29, 2026

Copy link
Copy Markdown

Performance Comparison mainfeat/per-item-size-virtual-scrollview

Total Elapsed Time: 65.63ms → 64.44ms (-1.8%)
CPU Baseline: 104.62µs → 89.96µs (-14.0%)
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.38ms → 64.17ms (-1.9%)        | 65.40ms → 64.19ms (-1.9%)        | 65.40ms → 64.19ms (-1.9%)        | 65.40ms → 64.19ms (-1.9%)        | 65.40ms → 64.19ms (-1.9%)        | 65.38ms → 64.17ms (-1.9%)       | 100.00% → 100.00% (+0.0%)    |
+-----------------------------------+--------------------------+----------------------------------+----------------------------------+----------------------------------+----------------------------------+----------------------------------+---------------------------------+------------------------------+
| runner::run_scope                 | 32025 → 32025 (+0.0%)    | 1.24µs → 1.22µs (-1.6%)          | 10.00ns → 10.00ns (+0.0%)        | 20.00ns → 20.00ns (+0.0%)        | 20.00ns → 20.00ns (+0.0%)        | 30.00ns → 31.00ns (+3.3%)        | 39.63ms → 39.16ms (-1.2%)       | 60.61% → 61.02% (+0.7%)      |
+-----------------------------------+--------------------------+----------------------------------+----------------------------------+----------------------------------+----------------------------------+----------------------------------+---------------------------------+------------------------------+
| runner::sync_and_update           | 3 → 3 (+0.0%)            | 10.98ms → 10.96ms (-0.2%)        | 6.62ms → 6.70ms (+1.2%)          | 7.99ms → 8.14ms (+1.9%)          | 18.37ms → 18.07ms (-1.6%)        | 18.37ms → 18.07ms (-1.6%)        | 32.95ms → 32.89ms (-0.2%)       | 50.40% → 51.26% (+1.7%)      |
+-----------------------------------+--------------------------+----------------------------------+----------------------------------+----------------------------------+----------------------------------+----------------------------------+---------------------------------+------------------------------+
| tree::apply_mutations             | 3 → 3 (+0.0%)            | 10.33ms → 9.90ms (-4.2%)         | 2.75ms → 2.38ms (-13.5%)         | 9.94ms → 9.95ms (+0.1%)          | 18.30ms → 17.38ms (-5.0%)        | 18.30ms → 17.38ms (-5.0%)        | 30.98ms → 29.69ms (-4.2%)       | 47.38% → 46.28% (-2.3%)      |
+-----------------------------------+--------------------------+----------------------------------+----------------------------------+----------------------------------+----------------------------------+----------------------------------+---------------------------------+------------------------------+
| mutations run                     | 3 → 3 (+0.0%)            | 4.41ms → 4.29ms (-2.7%)          | 4.15µs → 3.12µs (-24.8%) 🚀      | 3.31ms → 2.92ms (-11.8%)         | 9.93ms → 9.95ms (+0.2%)          | 9.93ms → 9.95ms (+0.2%)          | 13.24ms → 12.87ms (-2.8%)       | 20.25% → 20.05% (-1.0%)      |
+-----------------------------------+--------------------------+----------------------------------+----------------------------------+----------------------------------+----------------------------------+----------------------------------+---------------------------------+------------------------------+
| path_element::diff                | 32025 → 32025 (+0.0%)    | 353.00ns → 347.00ns (-1.7%)      | 30.00ns → 30.00ns (+0.0%)        | 50.00ns → 50.00ns (+0.0%)        | 170.00ns → 161.00ns (-5.3%)      | 672.00ns → 702.00ns (+4.5%)      | 11.31ms → 11.13ms (-1.6%)       | 17.30% → 17.34% (+0.2%)      |
+-----------------------------------+--------------------------+----------------------------------+----------------------------------+----------------------------------+----------------------------------+----------------------------------+---------------------------------+------------------------------+
| path_element::from_element        | 32025 → 32025 (+0.0%)    | 317.00ns → 316.00ns (-0.3%)      | 20.00ns → 20.00ns (+0.0%)        | 30.00ns → 30.00ns (+0.0%)        | 40.00ns → 40.00ns (+0.0%)        | 50.00ns → 50.00ns (+0.0%)        | 10.17ms → 10.13ms (-0.4%)       | 15.55% → 15.78% (+1.5%)      |
+-----------------------------------+--------------------------+----------------------------------+----------------------------------+----------------------------------+----------------------------------+----------------------------------+---------------------------------+------------------------------+
| Scope Rendering                   | 2 → 2 (+0.0%)            | 4.22ms → 4.19ms (-0.7%)          | 3.99ms → 3.97ms (-0.5%)          | 4.45ms → 4.41ms (-0.9%)          | 4.45ms → 4.41ms (-0.9%)          | 4.45ms → 4.41ms (-0.9%)          | 8.44ms → 8.37ms (-0.8%)         | 12.90% → 13.05% (+1.2%)      |
+-----------------------------------+--------------------------+----------------------------------+----------------------------------+----------------------------------+----------------------------------+----------------------------------+---------------------------------+------------------------------+
| runner::apply_diff                | 6 → 6 (+0.0%)            | 1.38ms → 1.38ms (+0.0%)          | 7.39µs → 6.92µs (-6.4%)          | 1.97ms → 1.81ms (-8.1%)          | 2.35ms → 2.52ms (+7.2%)          | 2.35ms → 2.52ms (+7.2%)          | 8.28ms → 8.29ms (+0.1%)         | 12.66% → 12.92% (+2.1%)      |
+-----------------------------------+--------------------------+----------------------------------+----------------------------------+----------------------------------+----------------------------------+----------------------------------+---------------------------------+------------------------------+
| text style cascade                | 3 → 3 (+0.0%)            | 2.18ms → 2.02ms (-7.3%)          | 140.00ns → 140.00ns (+0.0%)      | 2.52µs → 1.94µs (-23.0%) 🚀      | 6.52ms → 6.06ms (-7.1%)          | 6.52ms → 6.06ms (-7.1%)          | 6.53ms → 6.06ms (-7.2%)         | 9.98% → 9.45% (-5.3%)        |
+-----------------------------------+--------------------------+----------------------------------+----------------------------------+----------------------------------+----------------------------------+----------------------------------+---------------------------------+------------------------------+
| dirty run                         | 3 → 3 (+0.0%)            | 1.85ms → 1.88ms (+1.6%)          | 401.00ns → 340.00ns (-15.2%)     | 2.50µs → 2.15µs (-14.0%)         | 5.55ms → 5.64ms (+1.6%)          | 5.55ms → 5.64ms (+1.6%)          | 5.55ms → 5.63ms (+1.4%)         | 8.50% → 8.78% (+3.3%)        |
+-----------------------------------+--------------------------+----------------------------------+----------------------------------+----------------------------------+----------------------------------+----------------------------------+---------------------------------+------------------------------+
| layer cascade                     | 3 → 3 (+0.0%)            | 1.84ms → 1.67ms (-9.2%)          | 130.00ns → 150.00ns (+15.4%)     | 2.74ms → 2.37ms (-13.5%)         | 2.79ms → 2.63ms (-5.7%)          | 2.79ms → 2.63ms (-5.7%)          | 5.53ms → 5.00ms (-9.6%)         | 8.46% → 7.79% (-7.9%)        |
+-----------------------------------+--------------------------+----------------------------------+----------------------------------+----------------------------------+----------------------------------+----------------------------------+---------------------------------+------------------------------+
| effect cascade                    | 3 → 3 (+0.0%)            | 374.00ns → 297.00ns (-20.6%) 🚀  | 331.00ns → 260.00ns (-21.5%) 🚀  | 391.00ns → 311.00ns (-20.5%) 🚀  | 401.00ns → 321.00ns (-20.0%)     | 401.00ns → 321.00ns (-20.0%)     | 1.12µs → 892.00ns (-20.4%) 🚀   | 0.00% → 0.00% (+0.0%)        |
+-----------------------------------+--------------------------+----------------------------------+----------------------------------+----------------------------------+----------------------------------+----------------------------------+---------------------------------+------------------------------+
| runner::handle_events_immediately | 3 → 3 (+0.0%)            | 320.00ns → 287.00ns (-10.3%)     | 241.00ns → 190.00ns (-21.2%) 🚀  | 281.00ns → 330.00ns (+17.4%)     | 440.00ns → 341.00ns (-22.5%) 🚀  | 440.00ns → 341.00ns (-22.5%) 🚀  | 962.00ns → 861.00ns (-10.5%)    | 0.00% → 0.00% (+0.0%)        |
+-----------------------------------+--------------------------+----------------------------------+----------------------------------+----------------------------------+----------------------------------+----------------------------------+---------------------------------+------------------------------+

Threads

+-----------------+--------------------------------------+-----------+
| Thread          | CPU % Avg                            | CPU % Max |
+-----------------+--------------------------------------+-----------+
| dev_perf        | 89766.70% → 643710.30% (+617.1%) ⚠️  |           |
+-----------------+--------------------------------------+-----------+
| 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 29, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 93.82022% with 11 lines in your changes missing coverage. Please review.
✅ Project coverage is 61.94%. Comparing base (f6d0ab0) to head (a60680a).
⚠️ Report is 3 commits behind head on main.

Files with missing lines Patch % Lines
...a-components/src/scrollviews/virtual_scrollview.rs 95.69% 4 Missing ⚠️
examples/android/src/app/routes/scroll.rs 0.00% 3 Missing ⚠️
crates/freya-code-editor/src/editor_ui.rs 0.00% 2 Missing ⚠️
crates/freya-devtools-app/src/tabs/tree.rs 0.00% 2 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1985      +/-   ##
==========================================
+ Coverage   61.84%   61.94%   +0.09%     
==========================================
  Files         332      332              
  Lines       43370    43486     +116     
==========================================
+ Hits        26823    26937     +114     
- Misses      16547    16549       +2     

☔ View full report in Codecov by Harness.
📢 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.

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: Pending for Review

Development

Successfully merging this pull request may close these issues.

1 participant