[6.x] Optimize Blueprint JSON Payload - #11993
Closed
jasonvarga wants to merge 1 commit into
Closed
Conversation
Contributor
|
Great to see this - we have large/complex blueprints and content editor's laptops melt when they try to load the page in the CMS (60+ second load times if it loads at all). |
Member
Author
|
Yeah, not ideal! We're well aware of this and will be doing what we can. |
Member
Author
|
Closing for now, but will take another stab that includes optimizing the meta, which seems to be the real issue. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
For publish pages with a ton of fields (typically using a gigantic Replicator as a page builder) there has been performance issues. For example, the initial page load takes a long time. Not the server response - but the actual render. This seemed to be due to the gigantic blueprint that gets sent down the wire and then parsing the JSON makes the page struggle.
This is because each field's config contains all the necessary keys, even the default values for things that weren't explicitly defined. For example:
There's a lot of redundant stuff in there. This PR excludes any default values from being in there and instead merges them in later.
In one test example, the blueprint JSON went from 872.08 KB to 367.75 KB.
Looks like the real culprit is the
metadata though. It's even bigger thanblueprint. That'll take some thought because it's a two way binding.