-
Notifications
You must be signed in to change notification settings - Fork 1.5k
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
_app_start performance metric unreliable for iOS 15 #9026
Comments
See related discussion at MobileNativeFoundation/discussions#146 |
This issue is because of the iOS15 pre-warming all the applications for quick launch. Currently Fireperf measures the app start time to be the time between first object creation until the app is foregrounded. But since pre-warming loads the classes, the start time seem to have happened long before the app comes to foreground which causes the startup time to be way too high. Currently, we have a limit on the product to ignore start times beyond 60 minutes (as a protection mechanism), but that still seems to be on the higher end making it a concern. We are ideating on two different approaches:
We will rollout a fix for this real soon once we settle on the right path forward here. |
More measurements and details from this blog post as well: https://sourcediving.com/solving-mysterious-logout-issues-on-ios-15-8b818c089466.
My understanding is the Watchdog timer would terminate the app for not launching well before the 2 minute mark, so that sounds reasonable to me. |
Hi @weibel , would you be interested in trying out an early access version of the SDK that may fix this issue? |
@leotianlizhan Thanks for offering me the opportunity to test the fix. Unfortunately I can not test beta libraries with our project. |
Hi @weibel, |
Step 1: Describe your environment
CocoaPods
iOS
Step 2: Describe the problem
The _app_start time reported by Firebase Performance varies wildly for all iOS versions >=15. It goes into thousands of seconds for the 95 percentile.
Steps to reproduce:
I only know the numbers from my own project and can not do much to reproduce.
My hypothesis is that this could be connected to the iOS 15 pre-warming, where initializers and other pre-main steps are run preemptively, potentially hours before the app is started and main() is run. My own custom metric is using the technique from https://eisel.me/startup and suffered from the same problem.
The text was updated successfully, but these errors were encountered: