-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Reduce Application Binary Size #23261
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
Conversation
ae591bf to
3df21d1
Compare
|
| App Name | WordPress Alpha |
|
| Configuration | Release-Alpha | |
| Build Number | pr23261-aca7b63 | |
| Version | 25.0 | |
| Bundle ID | org.wordpress.alpha | |
| Commit | aca7b63 | |
| App Center Build | WPiOS - One-Offs #10011 |
|
| App Name | Jetpack Alpha |
|
| Configuration | Release-Alpha | |
| Build Number | pr23261-aca7b63 | |
| Version | 25.0 | |
| Bundle ID | com.jetpack.alpha | |
| Commit | aca7b63 | |
| App Center Build | jetpack-installable-builds #9062 |
guarani
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @jkmassel!
I realized the Stats PDF isn't used, so it can be removed.
I tested the other change to the welcome screen and noticed it looks odd in dark mode:
| this branch | trunk |
|---|---|
![]() |
![]() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great! Addressed in ac03070
|
Hey @jkmassel
So that I have a better understanding and avoid this kind of thing in the future, how does that pdf file increase the binary size by 43.1 Megabytes when the file itself appear to be 5 Kilobytes? I understand the vector file will be converted but still the number is extremely high indeed. If you mean the gradient, shouldn't the trade there lower the size rather than increase it? |
Xcode’s SVG handling is interesting – it doesn’t properly handle filters, so the blur isn’t baked into the resulting image. This is actually a feature, not a bug – the old encoding approach was worst-case scenario for image size – a partially-transparent image with gradients (from the blur) and noise applied overtop; and because Xcode turns the SVG into a PNG for us it would get unexpected large very quickly. Doing the blur manually takes just as much CPU time as it would if we were processing the SVG within iOS, but results in a much smaller image inside the bundle.
|
@alpavanoglu – I'm not sure I understand?
Where did you get 5kb from? The binary size is increased so much because the 7 MB PDF file is converted to a 3x, 2x, and 1x PNG by Xcode during compilation. The resulting
Interesting – I suspected #22296 because removing this file reduced the binary size by the 43 MB and we got a notification from Apple on Feb 20 that the app had exceeded the download limit. Perhaps there is another factor at play? |
|
Thanks @guarani – the transparency adds a bunch of complexity – the issue should now be resolved. Unfortunately the savings aren't quite as dramatic as with a JPEG but it's a good start. Brings down the Jetpack binary size from 269.8MB to 210.6MB, so we're much closer to the cellular limit now! |
That PR added 1 PDF and replaced the other. The pure addition is the small one I referred to there. And the replaced PDF is smaller in size so I reckoned overall I would be reducing the size and not increase it.
Perhaps. I wanted to clarify to avoid such things in the future. |
|
Addressed in #23381 |





In #22296, we merged a very large PDF file as an
xcassetsresource.This increased the binary size by 43.1MB, causing it to be too large for installation or update on cellular networks.
This PR resolves that by:
To test:
Regression Notes
PR submission checklist:
RELEASE-NOTES.txtif necessary.Testing checklist: