Closed laevandus closed 1 day ago
title |
develop |
branch |
diff |
status |
---|---|---|---|---|
StreamChat | 7.02 MB | 7.02 MB | 0 KB | ๐ข |
StreamChatUI | 4.96 MB | 4.96 MB | 0 KB | ๐ข |
target |
metric |
benchmark |
branch |
performance |
status |
---|---|---|---|---|---|
MessageList | Hitches total duration | 10 ms | 3.34 ms | 66.6% ๐ผ | ๐ข |
Duration | 2.6 s | 2.55 s | 1.92% ๐ผ | ๐ข | |
Hitch time ratio | 4 ms per s | 1.31 ms per s | 67.25% ๐ผ | ๐ข | |
Frame rate | 75 fps | 78.22 fps | 4.29% ๐ผ | ๐ข | |
Number of hitches | 1 | 0.4 | 60.0% ๐ผ | ๐ข |
title |
develop |
branch |
diff |
status |
---|---|---|---|---|
StreamChat | 7.06 MB | 7.06 MB | +1 KB | ๐ข |
StreamChatUI | 4.96 MB | 4.96 MB | 0 KB | ๐ข |
Issues
167 New issues
0 Accepted issues
Measures
0 Security Hotspots
83.7% Coverage on New Code
0.1% Duplication on New Code
QAed with @testableapple
๐ Issue Links
Part of IOS-558
๐ฏ Goal
Remove current user controller since it takes unnecessary CPU time when reacting to DB changes
๐ Summary
๐ Implementation
We had a perf issue some time ago where we used to create the
ChatCurrentUserController
every single time when checking for typing state (on each key press). Then we started to use a shared instance for that. Solved the issue, but there is one downside, reacting to current user changes can get expensive (e.g. current user has many muted channels which triggers recreating channel objects when updating the immutableCurrentChatUser
type). Instead all of this, we should just read the data we need and skip controllers.๐งช Manual Testing Notes
Try typing events, if disabled, should not appear, otherwise appear.
โ๏ธ Contributor Checklist