This repository was archived by the owner on Sep 11, 2024. It is now read-only.
Optimise memberSort performance for large list #6130
Merged
Add this suggestion to a batch that can be applied as a single commit. This suggestion is invalid because no changes were made to the code. Suggestions cannot be applied while the pull request is closed. Suggestions cannot be applied while viewing a subset of changes. Only one suggestion per line can be applied in a batch. Add this suggestion to a batch that can be applied as a single commit. Applying suggestions on deleted lines is not supported. You must change the existing code in this line in order to create a valid suggestion. Outdated suggestions cannot be applied. This suggestion has been applied or marked resolved. Suggestions cannot be applied from pending reviews. Suggestions cannot be applied on multi-line comments. Suggestions cannot be applied while the pull request is queued to merge. Suggestion cannot be applied right now. Please check back later.
There is a UI blocking operation for large member list, taking approximately 1.2 seconds to sort the array which made me look at what is causing the issue
The culprit was
String.prototype.localeCompare
. It turns out that creating anIntl.Collator
ahead of time speads up the process immenselyMinor optimisations were also made to avoid applying regexes on every sort callback
I went ahead and replaced every occurence of
localeCompare
in the rest of the platform to useIntl.Collator
. We will likely get a performance boost in room list filtering for large accounts as it was usinglocaleCompare
thereBefore 🐌
After 🐎