From 747a6f7784345e950ab3fac811e6ff291b771968 Mon Sep 17 00:00:00 2001 From: Hadrian Burkhardt Date: Sat, 17 Oct 2026 23:01:48 +0200 Subject: [PATCH] The queue says what the scaling numbers answered Items 3 and 3b were done but still read as open questions, and thumbnail jank is no longer blocked on a device that cannot report it - the phone run does, and the CI emulator always will. The one item still open is the baseline profile's delta, which needs a physical API 33+ device. --- docs/ROADMAP.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/docs/ROADMAP.md b/docs/ROADMAP.md index 7218d32..7445f87 100644 --- a/docs/ROADMAP.md +++ b/docs/ROADMAP.md @@ -78,9 +78,12 @@ release should not go out without. while decoding, and the image loader's caches are decided explicitly — memory only at 15 % of the heap, no disk cache. The device pass is in [EDGE_CASE_TESTING](EDGE_CASE_TESTING.md): 6 200 files with 300 images and a folder of 300 images, correct and stable, no crash or OOM. A 20 000-*image* folder is - still unmeasured, and jank on this screen needs a device that reports frame durations. -3. **The scaling numbers** — `./tools/benchmark-fixture.sh --count 20000` and the existing benchmarks: - answers whether a full SD card is a performance problem before a user with one finds out. + still unmeasured; jank on the screen is measurable now that both the phone run and the CI emulator + report `frameDurationCpuMs` (see [PERFORMANCE](PERFORMANCE.md)), but no test drives the photo grid yet. +3. **The scaling numbers** — **done**: 1 000 → 12–14 frames to open, 5 000 → 41, 20 000 → 184 with a 598 + outlier; the outlier was investigated and the real fix was progressive listing (200-entry batches, + O(n+k) merge), after which 20 000 files opens in **10–16 frames** with a 32–48 max across two runs. The + whole suite at that size, and what search costs there, is in [PERFORMANCE](PERFORMANCE.md). 4. **Copy to… / Move to… (M16)** — **done**: the selection bar's overflow opens a folder picker (volumes, then folders one level at a time, Up and the trail above them) and confirming copies or moves into the picked folder without leaving the current one. The selection survives a copy so a second destination is