Carbon: MultiSelect performance with large lists

Created on 25 Sep 2018  路  10Comments  路  Source: carbon-design-system/carbon

The 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%.

multi-select medium react 2 bug 馃悰 9

All 10 comments

I was just wondering if anyone is planning to take a look at this? This issue is affecting me too.

Not using the sortItems seems like it might help a bit, but it's still pretty slow.

We've marked this issue as stale because there hasn't been any activity for a couple of weeks. If there's no further activity on this issue in the next three days then we'll close it. Thanks for your contributions.

not stale

@asudoh Wondering if you have any insight into this 馃敭

@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.

Hi there! :wave: If you're wondering why this issue was moved, we're currently updating our repo structure so that every package is found in the same project.

This should not have any impact for you, but we wanted to give you a heads up in case you were wondering what is going on. If you have any questions, feel free to reach out to us on Slack or contact us at: [email protected]. Thanks!

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.

@laurenmrice any updates on this issue? This issue is affecting our application.

Adding this slack convo in here for visibility on this topic:
Screen Shot 2020-04-15 at 10 27 02 AM

Are there any updates on this issue?

Note: I've just updated the CodeSandbox to the latest Carbon versions.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

xrissot-ibm picture xrissot-ibm  路  3Comments

snidersd picture snidersd  路  3Comments

PatrickDuncan picture PatrickDuncan  路  3Comments

windgaucho picture windgaucho  路  3Comments

AnthumChris picture AnthumChris  路  3Comments