MultiSelect performance with large lists
See original GitHub issueThe MultiSelect
component doesn’t handle large lists well. The performance degrades to the point where it’s unusable.
Rendering the same list with ComboBox
doesn’t affect the performance as much.
Maybe we can have built-in “windowing” using react-window for example?
Detailed description
Is this issue related to a specific component?
MultiSelect
& MultiSelect.Filterable
What browser are you working in?
Chrome
latest
What version of the Carbon Design System are you using?
"carbon-components": "9.18.0",
"carbon-components-react": "6.32.4",
"carbon-icons": "7.0.7",
Steps to reproduce the issue
https://codesandbox.io/s/xrjy36l1pz
Additional information
You can also activate the FPS Meter
where you can see the frame rates drop significantly once the dropdown is clicked or use the Performance Monitor
to see the CPU Usage
. On my computer, once I click on the dropdown, the usage jumps to 100%.
Issue Analytics
- State:
- Created 5 years ago
- Comments:12 (7 by maintainers)
Top Results From Across the Web
Performance issue in Mat Multi Select with large dataset
I am trying to build an application in which I have taken a Mat Select with around 4000 items inside it I am...
Read more >Multiselect large data set in Kendo UI for Angular - Telerik
Hi,. I have implemented a Multiselect control with Filtering. It contains more then 10k items. My initial load is only 50 items as...
Read more >Dropdown performance poor with large lists - Radzen forum
Performance generally is a little slow but in particular, the dropdown control is very slow when it's populated from large lists.
Read more >Improve the performance of dropdown containing large data ...
The number of items that are rendered for the first time is the subset of a large list. As the user scrolls down...
Read more >FIX: Performance decreases after you move a report that ...
The report contains a large multi-select drop-down parameter list. You move the report to a SQL Server 2008 R2 Reporting Services server. You...
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
Another minimal replication of this issue using static data: https://codesandbox.io/s/frosty-shape-gzdku
A cloud team reached out with 4000 items in their list. At that amount, the component becomes unusable. The UX is improved by using
Multiselect.Filterable
(which is a wild and hard to find API) but the performance issues are still very real.@dakahn I cannot rattle off one, but if you go to Performance tab in Chrome DevTools, click Record button, run the user action with the problem, and click Stop button button, you’ll get insightful info wrt what code ran taking long time. You can right-click on the chart to save it, so great if you can share the result here. I can work with you on the analysis.