bpmn-io / form-js

View and visually edit JSON-based forms.
https://bpmn.io/toolkit/form-js/
Other
416 stars 106 forks source link

Improve form performance (tracking issue) #855

Open Skaiir opened 1 year ago

Skaiir commented 1 year ago

What should we do?

We should conduct an optimization pass for fjs, as there are some performance issues reported when dealing with large forms.

Why should we do it?

To keep the modeling experience as fluid as possible.

Sample form available here.

Potential improvements

To research

To implement

Skaiir commented 1 year ago

Internal: started a chat with modeler team [here]

barmac commented 1 year ago

I checked the form you shared and indeed it hangs the form playground for a while. Still, the regex looks OK, and a single evaluation does not take that much time on my machine. So it's more a "death by a thousand paper cuts", i.e. that particular function is executed too often. Note that the normalizeContextKey function is called within the context of conditional fields. Perhaps we could save some executions if we confirm that the condition mechanism is causing the problem.

Skaiir commented 11 months ago

This is still ongoing.

This issue here was raised regarding performance in tasklist for big forms. https://github.com/camunda/tasklist/issues/3758

Following investigations, the performance issues are due to the following:

marcosgvieira commented 10 months ago

@Skaiir as we released improvements for the performance on form-js in our latest release, should we close this one or is there something else we plan to execute?

Skaiir commented 10 months ago

@marcosgvieira I will unassign myself but keep this issue open in the backlog for future improvements. We need to wait on feedback but generally there are still things that could be improved :D