SAP / ui5-webcomponents-react

A wrapper implementation for React of the UI5 Web Components that are compliant with the SAP Fiori User Experience
https://sap.github.io/ui5-webcomponents-react/
Apache License 2.0
444 stars 100 forks source link

[AnalyticalTable]: [Sluggish scrolling in v2] #6615

Open sdommel opened 2 days ago

sdommel commented 2 days ago

Describe the bug

We are upgrading to v2 and noticed an overall slowdown in the performance of the AnalyticalTable component compared to v1, especially when scrolling. Performance obviously has to do with the number or rows, columns, cell renderer and so on, but in almost all cases the same tables in v1 behave more performant than in v2.

This is also observable in the docs: https://sap.github.io/ui5-webcomponents-react/v1/?path=/docs/data-display-analyticaltable--docs https://sap.github.io/ui5-webcomponents-react/v2/?path=/docs/data-display-analyticaltable--docs

While this is a big table, scrolling is still significantly worse in v2.

Isolated Example

No response

Reproduction steps

Compare scrolling behaviour of the same AnalyticalTable between v1 and v2 by dragging the scrollbar down with the mouse pressed.

Expected Behaviour

Same performance between same tables in v2 compared to v1

Screenshots or Videos

No response

UI5 Web Components for React Version

2.4.0

UI5 Web Components Version

2.4.0

Browser

Chrome

Operating System

Windows

Additional Context

No response

Relevant log output

No response

Organization

No response

Declaration

azhu716 commented 14 hours ago

We have observed the same issue in our project. We found that this function getStyleStoreSymbol is using a significant amount of time: image

And this performance issue is not specific to the AnalyticalTable but it is the most influenced as it will render a huge amount of components. Everything on the same page will become extremely slow.

Edit: Our observation is not the same as the demo page. On the demo page, it seems the time is mainly spend on layout and Chrome suggests that it's a forced reflow issue. image

Unfortunately it's difficult to create a stackblitz for the performance issue we encountered... Please fix the performance issue on the demo page and I'll try to reproduce the issue with getStyleStoreSymbol.