perf(avatar): return actor avatar versions with the participant list - #19414
pringelmann wants to merge 1 commit into
Conversation
cccbb78 to
2a6fbcb
Compare
There was a problem hiding this comment.
In a HAR I grabbed from a company call, 199 of 236 avatar requests came from the participant list.
I think that is a critical point here. Are we not having conditional rendering of the entries here like on the left sidebar?
Or is it because people join and therefor it resorts which entries are at the top and should be rendered? cc @Antreesy
The list does virtualise, but you're right about the re-sorting. Sort keys are online status, in call, raised hand and user status, so the order churns constantly during a call and different people keep landing in the rendered window. My HAR reflects that:108 of 178 requests in the first 10s, then 70 more over the next minute. |
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
2a6fbcb to
80fa85c
Compare
Should work more towards the idea of grouping (and collapsing) participants by type, so people without rights are not shown by default in "big" conversations. |
In addition to that I wonder how much impact the avatar in the system message has. Each participant joining generates a system message, we collapse most of them at some point, but we should also check that for collapsed messages we don't do the request. |
☑️ Resolves
Returns
actorAvatarVersionfor each participant. Clients put it in the avatar URL as?v=, and the server then caches it for 30 days instead of 1.Avatars are one of the heaviest things a big call pulls, and with a 1 day TTL they expire between weekly calls, so everyone refetches every participant every time. In a HAR I grabbed from a company call, 199 of 236 avatar requests came from the participant list.
Scope is deliberately just the participant list. Chat messages and the rooms list were left out after @Antreesy pointed out the payload cost of a field per message. Chat avatars keep the 1 day cache, nothing breaks.
AI (if applicable)
🖌️ UI Checklist
🖼️ Screenshots / Screencasts
Nothing visual. Avatars render identically, only the URL gains
&v=.🏁 Checklist
🛠️ API Checklist
🚧 Tasks
@nextcloud/vueonce theversionprop is released🏁 Checklist
docs/has been updated or is not required