A follow-up to yibie's vui btop experiment. Same UI, same rendered output (the benchmark asserts byte-identical buffer text), but structured the way a vui app is meant to be structured: per-band :memo components and memoized derived data, so a state change only re-renders the parts that depend on it.
No framework changes, no new helpers: the pure rendering code (parsing, graphs, panel drawing) is reused from the original file.
- The UI is split into three keyed
:memo tband components (cpu, lower, footer). A selection change re-renders only the lower band. - The filtered+sorted process list is computed once per render via
vui-use-memo(the original sorted it twice per render).