Skip to content

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

Merged
marc2332 merged 9 commits into
mainfrom
feat/per-item-size-virtual-scrollview
Jul 28, 2026
Merged

feat(components): Per item virtual scroll view sizing#1985
marc2332 merged 9 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: 73.99ms → 73.25ms (-1.0%)
CPU Baseline: 97.08µs → 88.78µs (-8.5%)
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.70ms → 72.97ms (-1.0%)        | 73.73ms → 73.01ms (-1.0%)        | 73.73ms → 73.01ms (-1.0%)        | 73.73ms → 73.01ms (-1.0%)       | 73.73ms → 73.01ms (-1.0%)       | 73.69ms → 72.96ms (-1.0%)        | 100.00% → 100.00% (+0.0%)    |
+-----------------------------------+--------------------------+----------------------------------+----------------------------------+----------------------------------+---------------------------------+---------------------------------+----------------------------------+------------------------------+
| runner::run_scope                 | 32025 → 32025 (+0.0%)    | 1.58µs → 1.56µs (-1.3%)          | 10.00ns → 10.00ns (+0.0%)        | 20.00ns → 20.00ns (+0.0%)        | 20.00ns → 20.00ns (+0.0%)       | 50.00ns → 40.00ns (-20.0%)      | 50.71ms → 49.85ms (-1.7%)        | 68.81% → 68.32% (-0.7%)      |
+-----------------------------------+--------------------------+----------------------------------+----------------------------------+----------------------------------+---------------------------------+---------------------------------+----------------------------------+------------------------------+
| runner::sync_and_update           | 3 → 3 (+0.0%)            | 13.40ms → 13.26ms (-1.0%)        | 8.09ms → 8.10ms (+0.1%)          | 8.77ms → 8.79ms (+0.2%)          | 23.35ms → 22.90ms (-1.9%)       | 23.35ms → 22.90ms (-1.9%)       | 40.20ms → 39.78ms (-1.0%)        | 54.55% → 54.53% (-0.0%)      |
+-----------------------------------+--------------------------+----------------------------------+----------------------------------+----------------------------------+---------------------------------+---------------------------------+----------------------------------+------------------------------+
| tree::apply_mutations             | 3 → 3 (+0.0%)            | 10.60ms → 10.51ms (-0.8%)        | 2.77ms → 2.61ms (-5.8%)          | 10.45ms → 10.78ms (+3.2%)        | 18.60ms → 18.15ms (-2.4%)       | 18.60ms → 18.15ms (-2.4%)       | 31.81ms → 31.53ms (-0.9%)        | 43.17% → 43.21% (+0.1%)      |
+-----------------------------------+--------------------------+----------------------------------+----------------------------------+----------------------------------+---------------------------------+---------------------------------+----------------------------------+------------------------------+
| path_element::from_element        | 32025 → 32025 (+0.0%)    | 485.00ns → 473.00ns (-2.5%)      | 30.00ns → 30.00ns (+0.0%)        | 40.00ns → 40.00ns (+0.0%)        | 71.00ns → 71.00ns (+0.0%)       | 80.00ns → 80.00ns (+0.0%)       | 15.56ms → 15.15ms (-2.6%)        | 21.11% → 20.77% (-1.6%)      |
+-----------------------------------+--------------------------+----------------------------------+----------------------------------+----------------------------------+---------------------------------+---------------------------------+----------------------------------+------------------------------+
| path_element::diff                | 32025 → 32025 (+0.0%)    | 466.00ns → 471.00ns (+1.1%)      | 60.00ns → 60.00ns (+0.0%)        | 70.00ns → 70.00ns (+0.0%)        | 200.00ns → 211.00ns (+5.5%)     | 1.38µs → 1.43µs (+3.6%)         | 14.95ms → 15.09ms (+0.9%)        | 20.29% → 20.69% (+2.0%)      |
+-----------------------------------+--------------------------+----------------------------------+----------------------------------+----------------------------------+---------------------------------+---------------------------------+----------------------------------+------------------------------+
| mutations run                     | 3 → 3 (+0.0%)            | 4.44ms → 4.57ms (+2.9%)          | 5.81µs → 4.28µs (-26.3%) 🚀      | 2.87ms → 2.93ms (+2.1%)          | 10.45ms → 10.78ms (+3.2%)       | 10.45ms → 10.78ms (+3.2%)       | 13.32ms → 13.71ms (+2.9%)        | 18.08% → 18.79% (+3.9%)      |
+-----------------------------------+--------------------------+----------------------------------+----------------------------------+----------------------------------+---------------------------------+---------------------------------+----------------------------------+------------------------------+
| Scope Rendering                   | 2 → 2 (+0.0%)            | 4.85ms → 4.70ms (-3.1%)          | 4.47ms → 4.37ms (-2.2%)          | 5.23ms → 5.03ms (-3.8%)          | 5.23ms → 5.03ms (-3.8%)         | 5.23ms → 5.03ms (-3.8%)         | 9.70ms → 9.40ms (-3.1%)          | 13.16% → 12.88% (-2.1%)      |
+-----------------------------------+--------------------------+----------------------------------+----------------------------------+----------------------------------+---------------------------------+---------------------------------+----------------------------------+------------------------------+
| runner::apply_diff                | 6 → 6 (+0.0%)            | 1.52ms → 1.56ms (+2.6%)          | 5.67µs → 5.68µs (+0.2%)          | 2.07ms → 2.07ms (+0.0%)          | 2.59ms → 2.64ms (+1.9%)         | 2.59ms → 2.64ms (+1.9%)         | 9.14ms → 9.36ms (+2.4%)          | 12.41% → 12.82% (+3.3%)      |
+-----------------------------------+--------------------------+----------------------------------+----------------------------------+----------------------------------+---------------------------------+---------------------------------+----------------------------------+------------------------------+
| text style cascade                | 3 → 3 (+0.0%)            | 2.38ms → 2.24ms (-5.9%)          | 231.00ns → 260.00ns (+12.6%)     | 1.85µs → 3.00µs (+62.2%) ⚠️      | 7.13ms → 6.71ms (-5.9%)         | 7.13ms → 6.71ms (-5.9%)         | 7.13ms → 6.71ms (-5.9%)          | 9.67% → 9.20% (-4.9%)        |
+-----------------------------------+--------------------------+----------------------------------+----------------------------------+----------------------------------+---------------------------------+---------------------------------+----------------------------------+------------------------------+
| dirty run                         | 3 → 3 (+0.0%)            | 1.91ms → 1.88ms (-1.6%)          | 611.00ns → 771.00ns (+26.2%) ⚠️  | 2.87µs → 2.54µs (-11.5%)         | 5.73ms → 5.64ms (-1.6%)         | 5.73ms → 5.64ms (-1.6%)         | 5.74ms → 5.64ms (-1.7%)          | 7.78% → 7.73% (-0.6%)        |
+-----------------------------------+--------------------------+----------------------------------+----------------------------------+----------------------------------+---------------------------------+---------------------------------+----------------------------------+------------------------------+
| layer cascade                     | 3 → 3 (+0.0%)            | 1.83ms → 1.77ms (-3.3%)          | 160.00ns → 150.00ns (-6.2%)      | 2.74ms → 2.60ms (-5.1%)          | 2.76ms → 2.73ms (-1.1%)         | 2.76ms → 2.73ms (-1.1%)         | 5.50ms → 5.32ms (-3.3%)          | 7.46% → 7.30% (-2.1%)        |
+-----------------------------------+--------------------------+----------------------------------+----------------------------------+----------------------------------+---------------------------------+---------------------------------+----------------------------------+------------------------------+
| runner::handle_events_immediately | 3 → 3 (+0.0%)            | 300.00ns → 310.00ns (+3.3%)      | 180.00ns → 270.00ns (+50.0%) ⚠️  | 301.00ns → 301.00ns (+0.0%)      | 420.00ns → 360.00ns (-14.3%)    | 420.00ns → 360.00ns (-14.3%)    | 901.00ns → 931.00ns (+3.3%)      | 0.00% → 0.00% (+0.0%)        |
+-----------------------------------+--------------------------+----------------------------------+----------------------------------+----------------------------------+---------------------------------+---------------------------------+----------------------------------+------------------------------+
| effect cascade                    | 3 → 3 (+0.0%)            | 144.00ns → 220.00ns (+52.8%) ⚠️  | 51.00ns → 210.00ns (+311.8%) ⚠️  | 150.00ns → 211.00ns (+40.7%) ⚠️  | 231.00ns → 241.00ns (+4.3%)     | 231.00ns → 241.00ns (+4.3%)     | 432.00ns → 662.00ns (+53.2%) ⚠️  | 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: 868.9 KB → 749.4 KB (-13.8%)
Total Dealloc: 696 B → 696 B (+0.0%)
Mem Diff: 868.2 KB → 748.7 KB (-13.8%)

+-----------------+----------------------------------+-----------+---------------------------------+--------------------------+---------------------------------+
| Thread          | CPU % Avg                        | CPU % Max | Alloc                           | Dealloc                  | Mem Diff                        |
+-----------------+----------------------------------+-----------+---------------------------------+--------------------------+---------------------------------+
| dev_perf        | 89812.50% → 98229.10% (+9.4%)    |           | 868.3 KB → 748.8 KB (-13.8%)    | 576 B → 576 B (+0.0%)    | 867.7 KB → 748.2 KB (-13.8%)    |
+-----------------+----------------------------------+-----------+---------------------------------+--------------------------+---------------------------------+
| hp-server       | 0.00% → 0.00% (+0.0%)            |           | 624 B → 624 B (+0.0%)           | 24 B → 24 B (+0.0%)      | 600 B → 600 B (+0.0%)           |
+-----------------+----------------------------------+-----------+---------------------------------+--------------------------+---------------------------------+
| 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: 72.60ms → 76.79ms (+5.8%)
CPU Baseline: 88.96µs → 90.09µs (+1.3%)
Benchmark ID: timing

timing - Execution duration of functions.

+-----------------------------------+--------------------------+----------------------------------+----------------------------------+-----------------------------------+----------------------------------+---------------------------------+----------------------------------+------------------------------+
| Function                          | Calls                    | Avg                              | P33                              | P66                               | P95                              | P99                             | Total                            | % Total                      |
+-----------------------------------+--------------------------+----------------------------------+----------------------------------+-----------------------------------+----------------------------------+---------------------------------+----------------------------------+------------------------------+
| dev_perf::main                    | 1 → 1 (+0.0%)            | 72.30ms → 76.51ms (+5.8%)        | 72.35ms → 76.55ms (+5.8%)        | 72.35ms → 76.55ms (+5.8%)         | 72.35ms → 76.55ms (+5.8%)        | 72.35ms → 76.55ms (+5.8%)       | 72.30ms → 76.51ms (+5.8%)        | 100.00% → 100.00% (+0.0%)    |
+-----------------------------------+--------------------------+----------------------------------+----------------------------------+-----------------------------------+----------------------------------+---------------------------------+----------------------------------+------------------------------+
| runner::run_scope                 | 32025 → 32025 (+0.0%)    | 1.50µs → 1.48µs (-1.3%)          | 10.00ns → 10.00ns (+0.0%)        | 20.00ns → 20.00ns (+0.0%)         | 20.00ns → 20.00ns (+0.0%)        | 40.00ns → 40.00ns (+0.0%)       | 48.18ms → 47.45ms (-1.5%)        | 66.64% → 62.02% (-6.9%)      |
+-----------------------------------+--------------------------+----------------------------------+----------------------------------+-----------------------------------+----------------------------------+---------------------------------+----------------------------------+------------------------------+
| runner::sync_and_update           | 3 → 3 (+0.0%)            | 12.85ms → 13.41ms (+4.4%)        | 7.77ms → 8.45ms (+8.8%)          | 8.61ms → 10.13ms (+17.7%)         | 22.17ms → 21.66ms (-2.3%)        | 22.17ms → 21.66ms (-2.3%)       | 38.54ms → 40.22ms (+4.4%)        | 53.30% → 52.57% (-1.4%)      |
+-----------------------------------+--------------------------+----------------------------------+----------------------------------+-----------------------------------+----------------------------------+---------------------------------+----------------------------------+------------------------------+
| tree::apply_mutations             | 3 → 3 (+0.0%)            | 10.73ms → 11.52ms (+7.4%)        | 2.80ms → 3.02ms (+7.9%)          | 10.31ms → 11.35ms (+10.1%)        | 19.10ms → 20.20ms (+5.8%)        | 19.10ms → 20.20ms (+5.8%)       | 32.20ms → 34.56ms (+7.3%)        | 44.53% → 45.18% (+1.5%)      |
+-----------------------------------+--------------------------+----------------------------------+----------------------------------+-----------------------------------+----------------------------------+---------------------------------+----------------------------------+------------------------------+
| path_element::diff                | 32025 → 32025 (+0.0%)    | 462.00ns → 538.00ns (+16.5%)     | 50.00ns → 40.00ns (-20.0%)       | 70.00ns → 70.00ns (+0.0%)         | 191.00ns → 230.00ns (+20.4%) ⚠️  | 882.00ns → 891.00ns (+1.0%)     | 14.80ms → 17.23ms (+16.4%)       | 20.46% → 22.53% (+10.1%)     |
+-----------------------------------+--------------------------+----------------------------------+----------------------------------+-----------------------------------+----------------------------------+---------------------------------+----------------------------------+------------------------------+
| mutations run                     | 3 → 3 (+0.0%)            | 4.67ms → 5.00ms (+7.1%)          | 5.36µs → 5.98µs (+11.6%)         | 3.70ms → 3.66ms (-1.1%)           | 10.31ms → 11.34ms (+10.0%)       | 10.31ms → 11.34ms (+10.0%)      | 14.01ms → 15.00ms (+7.1%)        | 19.38% → 19.61% (+1.2%)      |
+-----------------------------------+--------------------------+----------------------------------+----------------------------------+-----------------------------------+----------------------------------+---------------------------------+----------------------------------+------------------------------+
| path_element::from_element        | 32025 → 32025 (+0.0%)    | 406.00ns → 406.00ns (+0.0%)      | 20.00ns → 20.00ns (+0.0%)        | 50.00ns → 50.00ns (+0.0%)         | 61.00ns → 61.00ns (+0.0%)        | 70.00ns → 70.00ns (+0.0%)       | 13.01ms → 13.01ms (+0.0%)        | 17.99% → 17.00% (-5.5%)      |
+-----------------------------------+--------------------------+----------------------------------+----------------------------------+-----------------------------------+----------------------------------+---------------------------------+----------------------------------+------------------------------+
| Scope Rendering                   | 2 → 2 (+0.0%)            | 5.10ms → 4.77ms (-6.5%)          | 5.06ms → 4.45ms (-12.1%)         | 5.14ms → 5.09ms (-1.0%)           | 5.14ms → 5.09ms (-1.0%)          | 5.14ms → 5.09ms (-1.0%)         | 10.20ms → 9.53ms (-6.6%)         | 14.10% → 12.46% (-11.6%)     |
+-----------------------------------+--------------------------+----------------------------------+----------------------------------+-----------------------------------+----------------------------------+---------------------------------+----------------------------------+------------------------------+
| runner::apply_diff                | 6 → 6 (+0.0%)            | 1.43ms → 1.51ms (+5.6%)          | 8.18µs → 8.38µs (+2.4%)          | 2.10ms → 2.08ms (-1.0%)           | 2.62ms → 2.67ms (+1.9%)          | 2.62ms → 2.67ms (+1.9%)         | 8.61ms → 9.04ms (+5.0%)          | 11.90% → 11.81% (-0.8%)      |
+-----------------------------------+--------------------------+----------------------------------+----------------------------------+-----------------------------------+----------------------------------+---------------------------------+----------------------------------+------------------------------+
| text style cascade                | 3 → 3 (+0.0%)            | 2.34ms → 2.41ms (+3.0%)          | 161.00ns → 201.00ns (+24.8%) ⚠️  | 2.27µs → 2.54µs (+11.9%)          | 7.02ms → 7.24ms (+3.1%)          | 7.02ms → 7.24ms (+3.1%)         | 7.02ms → 7.24ms (+3.1%)          | 9.71% → 9.46% (-2.6%)        |
+-----------------------------------+--------------------------+----------------------------------+----------------------------------+-----------------------------------+----------------------------------+---------------------------------+----------------------------------+------------------------------+
| dirty run                         | 3 → 3 (+0.0%)            | 1.84ms → 2.07ms (+12.5%)         | 611.00ns → 802.00ns (+31.3%) ⚠️  | 1.78µs → 3.12µs (+75.3%) ⚠️       | 5.52ms → 6.22ms (+12.7%)         | 5.52ms → 6.22ms (+12.7%)        | 5.52ms → 6.22ms (+12.7%)         | 7.63% → 8.13% (+6.6%)        |
+-----------------------------------+--------------------------+----------------------------------+----------------------------------+-----------------------------------+----------------------------------+---------------------------------+----------------------------------+------------------------------+
| layer cascade                     | 3 → 3 (+0.0%)            | 1.84ms → 1.98ms (+7.6%)          | 180.00ns → 200.00ns (+11.1%)     | 2.73ms → 2.94ms (+7.7%)           | 2.79ms → 3.01ms (+7.9%)          | 2.79ms → 3.01ms (+7.9%)         | 5.52ms → 5.94ms (+7.6%)          | 7.63% → 7.77% (+1.8%)        |
+-----------------------------------+--------------------------+----------------------------------+----------------------------------+-----------------------------------+----------------------------------+---------------------------------+----------------------------------+------------------------------+
| runner::handle_events_immediately | 3 → 3 (+0.0%)            | 203.00ns → 294.00ns (+44.8%) ⚠️  | 60.00ns → 71.00ns (+18.3%)       | 170.00ns → 371.00ns (+118.2%) ⚠️  | 381.00ns → 441.00ns (+15.7%)     | 381.00ns → 441.00ns (+15.7%)    | 611.00ns → 883.00ns (+44.5%) ⚠️  | 0.00% → 0.00% (+0.0%)        |
+-----------------------------------+--------------------------+----------------------------------+----------------------------------+-----------------------------------+----------------------------------+---------------------------------+----------------------------------+------------------------------+
| effect cascade                    | 3 → 3 (+0.0%)            | 200.00ns → 183.00ns (-8.5%)      | 160.00ns → 160.00ns (+0.0%)      | 211.00ns → 190.00ns (-10.0%)      | 230.00ns → 200.00ns (-13.0%)     | 230.00ns → 200.00ns (-13.0%)    | 601.00ns → 550.00ns (-8.5%)      | 0.00% → 0.00% (+0.0%)        |
+-----------------------------------+--------------------------+----------------------------------+----------------------------------+-----------------------------------+----------------------------------+---------------------------------+----------------------------------+------------------------------+

Threads

+-----------------+--------------------------------------+-----------+
| Thread          | CPU % Avg                            | CPU % Max |
+-----------------+--------------------------------------+-----------+
| dev_perf        | 82255.70% → 564347.00% (+586.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.85475% with 11 lines in your changes missing coverage. Please review.
✅ Project coverage is 64.76%. Comparing base (9a5e886) to head (f2b3d1b).

Files with missing lines Patch % Lines
...a-components/src/scrollviews/virtual_scrollview.rs 95.74% 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   64.67%   64.76%   +0.08%     
==========================================
  Files         341      341              
  Lines       44419    44535     +116     
==========================================
+ Hits        28729    28843     +114     
- Misses      15690    15692       +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.

@marc2332
marc2332 merged commit 699fadf into main Jul 28, 2026
14 checks passed
@marc2332
marc2332 deleted the feat/per-item-size-virtual-scrollview branch July 28, 2026 14:25
@github-project-automation github-project-automation Bot moved this from Pending for Review to Done in Freya Planning Jul 28, 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