/mentions + /grep preview causes severe responsiveness degradation
Nobody has claimed this yet.
- Dominant language
- Haskell
- Stars
- 168
- Forks
- 27
- PR merge metrics
- No merged PRs in 30d
Description
/mentions shows a view with all messages containing highlights across all your channels. /grep changes this view to allow you to search through all your windows for messages matching some regex. This is an expensive operation which is performed every time the input bar is updated, including updates that do not change the contents of the input bar (e.g. moving the cursor). After the regex gets longer than a few characters, it can take glirc > 1s on my system to respond to input after allowing it to collect backlog for a few days.
I suggest moving the /mentions + /grep interaction to some other view that doesn't have to deal with redoing the search for previews (/find ?). /grep could then be used to search those views as a form of search refinement.
It may also be worth looking into not triggering a re-render of the view on the aforementioned input bar updates.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the /mentions and /grep interaction, reproduce the slowdown after collecting backlog, and profile updates as the input bar changes. Compare moving the search interaction to another view with avoiding preview re-renders; done means regex searches and cursor-only updates no longer cause severe responsiveness degradation.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- haskell
- Domain
- cli, performance
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100