Skip to content

Firebase significantly contributes to iOS app launch time #13232

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

Closed
mkj-is opened this issue Jul 4, 2024 · 22 comments
Closed

Firebase significantly contributes to iOS app launch time #13232

mkj-is opened this issue Jul 4, 2024 · 22 comments

Comments

@mkj-is
Copy link
Contributor

mkj-is commented Jul 4, 2024

Description

In Xcode Organizer in Xcode 16 beta we see Firebase is contributing 10 % to our app launch time, which is concerning.

Our custom measurements in production show the P90 for initialising Firebase SDK is 90 ms, P50 is 40 ms. We are using CocoaPods, but Firebase is statically linked.

These methods are responsible:

  • 3 %: FIRCLSContextInitialize + 876 (130 ms spent in this code path during a 1792 ms launch)
  • 2 %: __46+[APMAnalytics startWithAppID:origin:options:]_block_invoke + 1148 (90 ms spent in this code path during a 1220 ms launch)
  • 2 %: +[APMAEU appStoreRURL] + 160 (90 ms spent in this code path during a 3528 ms launch)
  • 1 %: -[APMUserDefaults objectForKey:] + 88 (90 ms spent in this code path during a 1186 ms launch)
  • 1 %: -[FIRInstallationsAPIService initWithAPIKey:projectID:heartbeatLogger:] + 92 (60 ms spent in this code path during a 1830 ms launch)
  • 1 %: APMIsScreenReportingEnabled + 28 (130 ms spent in this code path during a 2467 ms launch)

Might be related to #13223.

Screenshot 2024-07-04 at 13 04 54 Screenshot 2024-07-04 at 13 05 01 Screenshot 2024-07-04 at 13 05 16 Screenshot 2024-07-04 at 13 05 31 Screenshot 2024-07-04 at 13 05 42 Screenshot 2024-07-04 at 13 07 33

Reproducing the issue

Open Xcode Organizer (Xcode 16 beta) Launch reports for any app with significant number of users and see the stats.

Firebase SDK Version

10.22

Xcode Version

16.0

Installation Method

CocoaPods

Firebase Product(s)

Crashlytics, Performance

Targeted Platforms

iOS

Relevant Log Output

No response

If using Swift Package Manager, the project's Package.resolved

Expand Package.resolved snippet
Replace this line with the contents of your Package.resolved.

If using CocoaPods, the project's Podfile.lock

Expand Podfile.lock snippet
  FirebaseABTesting: e6e3c3e0e35813874f571d1b7bdae2aab319dd38
  FirebaseAnalytics: 8d0ff929c63b7f72260f332b86ccf569776b75d3
  FirebaseCore: 0326ec9b05fbed8f8716cddbf0e36894a13837f7
  FirebaseCoreExtension: 8a47811d0b155501559ef05d089518152a0a1677
  FirebaseCoreInternal: 910a81992c33715fec9263ca7381d59ab3a750b7
  FirebaseCrashlytics: e568d68ce89117c80cddb04073ab9018725fbb8c
  FirebaseInstallations: 91950fe859846fff0fbd296180909dd273103b09
  FirebaseMessaging: 9f71037fd9db3376a4caa54e5a3949d1027b4b6e
  FirebasePerformance: 095debad1fc8d7d73148a835fcaec9e528946166
  FirebaseRemoteConfig: 9f3935cefecd85d5b312192117f444957de24a75
  FirebaseRemoteConfigInterop: b25018791b204c0d78a90e394d6c62d9b1f22da8
  FirebaseSessions: c0939656253a1fa0e94ecc266ccf770cc8b33732
  FirebaseSharedSwift: 0274086954b1b2d5fd7e829eccc587044d72a4ba
@paulb777
Copy link
Member

paulb777 commented Jul 9, 2024

10.27.0 addressed a startup time issue in Crashlytics that may be related to the top item in the list. Please update and let us know if the slowdown is still occurring.

@google-oss-bot
Copy link

Hey @mkj-is. We need more information to resolve this issue but there hasn't been an update in 5 weekdays. I'm marking the issue as stale and if there are no new updates in the next 5 days I will close it automatically.

If you have more information that will help us get to the bottom of this, just add a comment!

@mkj-is
Copy link
Contributor Author

mkj-is commented Jul 16, 2024

We currently have 10.22.0 in production. When we tested the latest version (10.29.0) we were not able to see any improvements.

@mkj-is
Copy link
Contributor Author

mkj-is commented Aug 29, 2024

There is a new strack trace since we updated to Firebase 10.29.0:

-[RCNConfigDBManager loadInternalMetadataTable] + 160 (130 ms spent in this code path during a 1986 ms launch)

Our metrics show the Firebase init increased by 30 ms on iOS and 100 ms on tvOS due to this update.

We are not using RemoteConfig, it is automatically included as a dependency of FirebasePerformance.

@hsoi
Copy link

hsoi commented Nov 25, 2024

@mkj-is Curious if you are still affected by this? And are you still using 10.29.0, or perhaps updated to 11.5.0 (current) and if the problem persists or not?

This problem appears to be similar to #13675 as well.

I'm investigating recent slowdowns in my app's launch time (we're shipping 11.4.0 and developing with 11.5.0), and while I'm still digging through Instruments data, it seems Firebase may be involved with the main thread in ways it maybe should not be (supported by @paulb777 's comment here: #13675 (comment) )

Anyways, curious if the problem persists for you or if you've had improvements. Thanks.

@mkj-is
Copy link
Contributor Author

mkj-is commented Nov 26, 2024

@hsoi We are still on 10.29.0.

We did some app start optimizations on our side recently. Xcode Organizer Launch reports now show Firebase related stack traces are responsible for 56 % of slow app launches for our app, majority of it is FIRCLSContextInitialize call.

P90 for iOS and Apple TV Firebase configure call is around 180 ms.

@sharanbasappa95
Copy link

@hsoi Do we have any update on this?

@hsoi
Copy link

hsoi commented Dec 3, 2024

@sharanbasappa95 I'm not sure what update you're looking for from me - I'm just a user (still) affected by this issue too. Could you please clarify what you're looking for?

@sharanbasappa95
Copy link

@hsoi wrongly tagged you instead of firebase team.

@Desgard
Copy link

Desgard commented Dec 31, 2024

I'm using version 11.2.0, which still shows the Firebase SDK taking a lot of time to launch in xcode.

Has anyone tried using the latest version 11.6?

@SuryakantRapido
Copy link

@ncooke3 Any update on this?
Are we fixing this any sooner. Please provide some timeline for clients.
Thanks.

@songzhiming
Copy link

Any update on this?

@paulb777
Copy link
Member

11.9.0 that released this week included some launch time improvements, although not necessarily all of those referenced here.

@songzhiming
Copy link

@paulb777 Can you provide some data, such as how much it has been optimized?

@paulb777
Copy link
Member

@songzhiming We weren't able to exactly reproduce the long launch time problems reported. We found and fixed some unnecessary synchronization in Firebase Analytics that could contribute to the problem. cc: @morganchen12

@SuryakantRapido
Copy link

We weren't able to exactly reproduce the long launch time problems reported

Everyone else in the world is facing an issue but you are not able to reproduce 👎

@shilpa-bansal0401
Copy link

I am using Firebase SDK 11.9.0, but still facing the high launching time. Any suggestions here?

@mkj-is
Copy link
Contributor Author

mkj-is commented Apr 9, 2025

We profiled our app with Firebase 11.9.0, but most of the resource intensive stack traces are still there. We have not been able to see any meaningful improvements as of yet.

@paulb777
Copy link
Member

paulb777 commented Apr 9, 2025

Firebase 11.11.0 included a fix for a Firebase Analytics performance issue.

@alflix
Copy link

alflix commented Apr 14, 2025

Firebase 11.11.0 included a fix for a Firebase Analytics performance issue.

Still has this issue in Firebase 11.11.0 😭

@samedson
Copy link
Contributor

samedson commented May 1, 2025

Hey folks, we just made a change that should improve the startup time of Crashlytics. It'll be included in the next Firebase SDK release.

If you'd like to test it out early it's on this PR: #14754.

@paulb777 paulb777 added this to the 11.13.0 - M164 milestone May 1, 2025
@paulb777
Copy link
Member

paulb777 commented May 1, 2025

Closing since the fix is merged and is planned to release with 11.13.0 the week of May 15

@paulb777 paulb777 closed this as completed May 1, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests