mirror of
https://github.com/matrix-org/matrix-rust-sdk.git
synced 2026-05-09 08:27:32 -04:00
When all room members are loaded, we do not need an incremental member update. We know that parsing the /members response will only lead to more ambiguous names, not less. And because /members returns the complete list, we can directly use that list as the disambiguation map. This improves the performance in my emulator from 56s to 9s and on a less performant device from 11mins to 11s (Tested experimentally on Matrix HQ using log statements in element android. If I have time, I will write a proper benchmark tomorrow. See also https://github.com/matrix-org/matrix-rust-sdk/pull/3184#issuecomment-1986170631 for a more detailed benchmark run. --- * members: Simplify disambiguation logic * members: Prevent api misuse for receive_members * members: Benchmark receive_all_members performance * sdk: remove unused import * sdk-base: rename `ApiMisuse` error to `InvalidReceiveMembersParameters` * benchmarks: extract the member loading benchmark to `room_bench.rs` * benchmarks: remove wiremock * sdk-base: fix format * sdk-base: try fixing tests * benchmark: Provide some data to the store so the search and disambiguation happen * benchmark: fix clippy * benchmark: use a constant for `MEMBERS_IN_ROOM` * sdk(style): reduce indent in `receive_all_members` --------- Co-authored-by: Jorge Martín <jorgem@element.io> Co-authored-by: Benjamin Bouvier <public@benj.me>