Closed (outdated)
Project:
Experience Builder
Version:
0.x-dev
Component:
Shape matching
Priority:
Critical
Category:
Task
Assigned:
Unassigned
Issue tags:
Reporter:
Created:
26 Mar 2025 at 13:20 UTC
Updated:
19 Jun 2025 at 16:55 UTC
Jump to comment: Most recent




Comments
Comment #2
wim leersThanks so much for the profiling!
Yep, the BE is known to be slow with many components. We were already aware, @kristen pol provided me a sample page on Monday too.
The BE is 0% optimized. 32 million function calls already says as much :D That also means that it will be easy to make it significantly faster.
(It might be hard to make it fast enough for all scenarios, but faster than today is clearly trivial.)
“Premature optimization is …” and all that :)
I’m SUPER stoked to see that the bulk of that time is going to shape matching and everything that calls, because that’s literally the area I’m working on next! 😄 Specifically: #3467870: Support `{type: array, …}` prop shapes. Which is exactly why not having optimized this makes sense: it’s not yet feature-complete!
Comment #3
wim leersComment #4
longwaveI had a hunch that #3493943: SDC+JS Component Sources: split default values into `resolved` and `source` would largely fix this, and it seems correct; tested with xb_demo there is a 230x speed improvement in
::clientModelToInput()which is by far the largest single section of the flamegraph.Comment #5
heyyo commentedWouah 230X faster, impressive, I will have to try this !
Comment #6
wim leers#3493943: SDC+JS Component Sources: split default values into `resolved` and `source` is in!
Comment #7
wim leersDone by @larowlan at #3530907: Optimize DynamicPropSource candidate suggestion logic: improves performance of /xb/api/v0/config/component by 80%.