-
-
Notifications
You must be signed in to change notification settings - Fork 3.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[UI initialization performance] Research how the UI is initialized (the flow) and which steps take significant amount of time #12682
Comments
While analyzing the UI init flow, I checked different approaches to cut that time. Lazy renderThe first idea was to postpone DOM element creation to the first moment that it would get visible. There are some view classes that have a separate This approach would be baked into the UI engine and would not require changes in features code but OTOH it could break some custom UIs that expect DOM element to be ready to use just after calling Lazy initAnother approach was to postpone the construction of view instances that are expected to be not visible on the editor initialization (like dropdown panels, and widget toolbars). There is a branch that shows some improvements in UI init time: ck/12682-performance-reference...ck/12682-performance-lazy-init This branch does not include all possible optimization places but already there is a visible performance improvement (see table at the bottom of this comment). Toolbar groupingWe've seen that disabling this option improve the load times. In scenarios where the initialization time is critical, we recommend disabling it. See SVG parsing overheadI checked whether SVG parsing (for DOM element clone vs createAnother idea to verify was to clone existing DOM elements instead of creating new ones. In tests, it looked like it performed the same or even the performance was worse. UI Init time measurementsReference: https://github.com/ckeditor/ckeditor5/compare/ck/12682-performance-reference |
Research summary:
Plan:
|
Extracted to #12890. |
Extracted to #12891. |
Part of #12592.
The text was updated successfully, but these errors were encountered: