Avatars: full-size photos for 32 px, fetched as full views, all redrawn per arrival #239
Labels
No labels
area/ci
area/desktop
area/packaging
area/protocol
area/reading
area/ui
area/web
area/writing
kind/bug
kind/feature
kind/infra
kind/request
needs/user
parked
perf
security
upstream
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
littlefox/neokom#239
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Found in the performance review (#230, D-058).
app/src/avatar.rsandKom::avatar(crates/kom-client/src/profile.rs):data:URL inCACHEfor the session, and everyimgon screen decodes the full picture to draw it at 32 px.imageon desktop.blob:URL.Kom::avatarcallsself.view(presentation). That builds a wholeTextView, including aget-text-statfor every comment to the presentation. Old presentations can have many comments. It only needs the body.viewalso counts the presentation as a seen FAQ;previewor a body-only path would do.Avatarreads the wholeCACHEmap, so each picture that arrives redraws every avatar on screen. In a long thread that is N pictures × N avatars. Give each person their own signal (or a memo per person).kom-client'sbodiescache (the presentation text) for the whole session (#236).Merged in #266; main run #441 green. Verified: profile spec on three profiles (a 600 px picture is kept as ≤192 px), side-column, presence, thread and channel-posts specs;
tools/perf.sh: after 25 pages of a channel's posts the app's memory is 33 MB, down from 89 MB.