From e801d2d4803fabf06dd43e2756e24a472c53fee1 Mon Sep 17 00:00:00 2001 From: Julien Calixte Date: Mon, 13 Jul 2026 10:26:25 +0200 Subject: [PATCH] docs(palette): note the two on-device boot-log measurements pending Walk time after the d_type fix, and the file-list internal-DRAM cost with the decision rule for interning paths into one PSRAM buffer. --- docs/v0.5-palette-and-multi-file.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/docs/v0.5-palette-and-multi-file.md b/docs/v0.5-palette-and-multi-file.md index d974560..689e3e7 100644 --- a/docs/v0.5-palette-and-multi-file.md +++ b/docs/v0.5-palette-and-multi-file.md @@ -167,6 +167,25 @@ away — and the full fuzzy-ranked list appears from 2 chars on `>` commands and `$` snippets are short curated lists; the threshold does not apply to them. +**TODO (on-device, next time the device is on the bench)** — two measurements +from the same boot log, both already instrumented: + +- [ ] **Re-measure the walk time** after the d_type fix (`2660a3e` — dirent + `file_type()` instead of a per-entry `metadata()` stat, which cost + ~32 ms/file and made run 1 take 35 s for 1098 files). Read the + `file walk: N files in Xms` line. Only if it's still slow does the + async-walk idea come back on the table. +- [ ] **Read the file-list DRAM cost** from the new + `file list: internal heap -> ( KB consumed)` line + (the build is bracketed with `MALLOC_CAP_INTERNAL` readings in + `main.rs`). The 1098 path Strings are each below the 16 KB SPIRAM + malloc threshold, so they all land in internal DRAM — estimated + 60–70 KB, competing with Wi-Fi/TLS. Decision rule: **~60–70 KB + confirms** interning the paths into one shared buffer (a single + >16 KB alloc goes to PSRAM; only a ~9 KB offset index stays in DRAM); + **well under that (≤~30 KB)** kills the idea — the next DRAM suspect + is then parked-buffer text. + - [x] `Cmd-P` opens fuzzy file palette over **both** `/sd/repo/` and `/sd/local/` — **landed and CONFIRMED ON DEVICE 2026-07-12** (Spike 11: no ghosting on the transient panel); scope shows as the inline