siemens / ix

Siemens Industrial Experience is a design system for designers and developers, to consistently create the perfect digital experience for industrial software products.
https://ix.siemens.io/
MIT License
208 stars 67 forks source link

bad performance of ix components in angular 18.2 #1543

Open sire987 opened 4 weeks ago

sire987 commented 4 weeks ago

Prerequisites

What happened?

Unfortunately, we notice poor performance when we need to instantiate hundreds of ix elements in a view.

This problem applies to several ix-components. In particular, the ix-button, ix-icon and ix-icon-button components are too slow to be used en masse. The biggest problem is that the fps rate is close to zero, giving the user a poor experience when using the app.

As you can see in the demo below, the ix-button is significantly slower than the “normal” HTML button. In the real application, the performance when using the ix-button is more than 10 times worse compared to the HTML button.

What type of frontend framework are you seeing the problem on?

Angular

Which version of iX do you use?

v2.5.0

Code to produce this issue.

https://stackblitz.com/edit/j8h8x4-cttvdx
danielleroux commented 4 weeks ago

Can you please add more insights to the topic e.g Browser version, Installed addons (browser addons e.g developer console addons) can create sometimes are strange behaviour. I tested your stackblitz here is the recording.

https://github.com/user-attachments/assets/1421eec5-094e-4d40-a2e8-3eac052da27e

sire987 commented 3 weeks ago

Browser version: Google Chrome Version 130.0.6723.70 DevTools: Chrome 130, Angular DevTools 1.0.18

As you can see in your screencast, the initial loading time (after the click) is particularly slower with the ix elements. The greater the number of elements, the clearer this effect becomes.

The deterioration in performance becomes even more pronounced if you switch the compiler from Webpack to Esbuild. (see screencast) Animation

github-actions[bot] commented 3 weeks ago

🤖 Hello @sire987

Your issue will be analyzed and is part of our internal workflow. To get informed about our workflow please checkout the Contributing Guidelines

JIRA: IX-1916