-
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
Regression in flutter_gallery iOS release size #139605
Comments
Potential sources:
nothing else looks suspicious. |
shrine_images is unlikely to be the problem, the only change there was a trivial SDK version bump. |
@stuartmorgan any idea if bumping video_player that much (2.2.11 to 2.8.1) could be the cause of a ~13MB regression in iOS release size on flutter_gallery? |
I'm not aware of any reason it would; that would certainly be surprising. |
#139203 updated Gallery's version of the The new version of |
I assume that this is being measured pre-thinning? If so, I think we should just reset the baseline. Is this our only size baseline? If so, we should seriously consider either replacing it, or at least adding a second one; the default project creation has been Swift/Kotlin for more than four years now, so the utility of a baseline that uses an Obj-C/Java template is questionable. |
The value comes from here: https://github.com/flutter/flutter/blob/master/dev/devicelab/lib/tasks/perf_tests.dart#L1703 It's a straight up tar gz of the |
Making the minimum iOS version 12.2 instead of 11.0 prevents the Swift runtime from being pulled in. https://developer.apple.com/documentation/xcode-release-notes/swift-5-release-notes-for-xcode-10_2#App-Thinning |
I've talked to @zanderso and the compressed app size isn't an accurate proxy for downloaded app size since the App Store encrypts and then recompresses the app.
One thing at a time though. #140188 will set the minimum deployment target for iOS compile perf tests to 12.2 which should fix some of the size regression related to the Swift runtime. |
This comment suggests another reason measuring compressed app size is important is to validate that changes in Dart snapshot format and data layout do not change compression size. flutter/dev/devicelab/lib/tasks/perf_tests.dart Lines 1701 to 1702 in 0b6da5b
But then I looked at where we decided that matters and it was past-me and I can't remember why: |
No, it's a tar gz of the app, not the whole output directory. flutter/dev/devicelab/lib/tasks/perf_tests.dart Lines 2224 to 2231 in 0b6da5b
flutter/dev/devicelab/lib/tasks/perf_tests.dart Lines 1696 to 1703 in 0b6da5b
|
@jmagman Thanks for investigating! |
…140188) ObjC->Swift plugin migration caused a size regression in the gallery app because the Swift runtime was also pulled in. The gallery app minimum target version is iOS 11.0, which predates Swift ABI compatibility. Pre iOS 12.2 apps embedded the Swift runtime since there wasn't one available to use in the OS. Add `FLUTTER_XCODE_IPHONEOS_DEPLOYMENT_TARGET` to the compile perf test environment, which gets translated by the tool to an Xcode build setting: ``` [2023-12-14 15:52:14.797318] [STDOUT] stdout: IPHONEOS_DEPLOYMENT_TARGET = 12.2 ``` On my machine on main ``` "release_size_bytes": 43717389, ``` becomes ``` "release_size_bytes": 40679432, ``` Fixes #139605
This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new bug, including the output of |
On the PR here #139203 from @Hixie that rolled some pub deps forward, SkiaPerf is reporting a ~13MB regression in the iOS release size of the flutter_gallery.
https://flutter-flutter-perf.skia.org/e/?begin=1699661770&end=1701816185&keys=X002a387933ee8947522cae13fbd696c3&requestType=0&selected=commit%3D38182%26name%3D%252Carch%253Dintel%252Cbranch%253Dmaster%252Cconfig%253Ddefault%252Cdevice_type%253DiPhone_11%252Cdevice_version%253Dnone%252Chost_type%253Dmac%252Csub_result%253Drelease_size_bytes%252Ctest%253Dflutter_gallery_ios__compile%252C&xbaroffset=38181
Is this intentional or a benign side-effect of rolling the dependencies forward?
The text was updated successfully, but these errors were encountered: