-
Notifications
You must be signed in to change notification settings - Fork 26.8k
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
Speed up first asset load by using the binary-formatted asset manifest for image resolution #118782
Speed up first asset load by using the binary-formatted asset manifest for image resolution #118782
Conversation
29d4f98
to
62a659c
Compare
…manifest-for-image-resolution
…manifest-for-image-resolution
Golden file changes have been found for this pull request. Click here to view and triage (e.g. because this is an intentional change). If you are still iterating on this change and are not ready to resolve the images on the Flutter Gold dashboard, consider marking this PR as a draft pull request above. You will still be able to view image results on the dashboard, commenting will be silenced, and the check will not try to resolve itself until marked ready for review. For more guidance, visit Writing a golden file test for Reviewers: Read the Tree Hygiene page and make sure this patch meets those guidelines before LGTMing. |
…et manifest for image resolution (flutter/flutter#118782)
…et manifest for image resolution (flutter/flutter#118782)
…et manifest for image resolution (flutter/flutter#118782)
…et manifest for image resolution (flutter/flutter#118782)
…et manifest for image resolution (flutter/flutter#118782)
…et manifest for image resolution (flutter/flutter#118782)
…et manifest for image resolution (flutter/flutter#118782)
…et manifest for image resolution (flutter/flutter#118782)
…et manifest for image resolution (flutter/flutter#118782)
…et manifest for image resolution (flutter/flutter#118782)
…et manifest for image resolution (flutter/flutter#118782)
…et manifest for image resolution (flutter/flutter#118782)
…et manifest for image resolution (flutter/flutter#118782)
…et manifest for image resolution (flutter/flutter#118782)
…et manifest for image resolution (flutter/flutter#118782)
…et manifest for image resolution (flutter/flutter#118782)
…et manifest for image resolution (flutter/flutter#118782)
…et manifest for image resolution (flutter/flutter#118782)
…et manifest for image resolution (flutter/flutter#118782)
…et manifest for image resolution (flutter/flutter#118782)
…et manifest for image resolution (flutter/flutter#118782)
…et manifest for image resolution (flutter/flutter#118782)
…et manifest for image resolution (flutter/flutter#118782)
Supersedes #113637/#116684. Branches off #118410.
Note for self: update #117228 and lower its priority after merge.
Context
When loading an asset for the first time, the framework has to load a file called the asset manifest, which contains information about assets available to the app (for example, where to find higher-resolution variants of images). This file is in the JSON format.
Reading the file from storage, decoding into UTF, and parsing it as JSON is generally slower than we'd like, especially since this is will all likely happen on first paint (since many apps include assets on their first screens).
#117233 updated the tool to also generate a binary-formatted version of the asset manifest. The binary-format enables faster loading and parsing of the file. This change utilizes this new asset manifest for resolving assets.
Here are the results from running the
load_and_parse_large_asset_manifest
benchmark on a Galaxy A02S before and after the change:In apps with large asset manifests, such as money (g3), running on lower-spec devices, this should hopefully result in a speed up of at least one frame when loading.
Pre-launch Checklist
///
).If you need help, consider asking for advice on the #hackers-new channel on Discord.