Android Developers Blog: NordVPN boosted the speed of its login user flow by 60% using Baseline Profiles
Article Summary
NordVPN just made their Android app 60% faster in one critical flow. The fix? A performance feature most Android devs still aren't using.
The VPN provider integrated Android's Baseline Profiles to optimize their app's runtime performance. Using profile-guided optimization and ahead-of-time compilation, they targeted startup times and key user journeys that weren't meeting their standards.
Key Takeaways
- Login flow improved by 60% using Baseline Profiles
- Cold start dropped from 4.3s to 3.2s, warm start from 2.7s to 1.8s
- Overall in-app speed increased 29% across the board
- Implementation was straightforward using Macrobenchmark library and Gradle managed devices
- Fresh profiles auto-generate for each release build on CI
NordVPN achieved a 24% average launch speed improvement and 29% overall speed boost by implementing Baseline Profiles with minimal code changes.
About This Article
NordVPN's Android app was slow to start. Cold starts took 4.3 seconds and warm starts took 2.7 seconds, both well above what the engineering team wanted. They needed to find a way to speed things up.
The team used Baseline Profiles with the Macrobenchmark library and Gradle managed devices. This let them generate profiles automatically for each release build without needing physical test devices.
Cold start time dropped to 3.2 seconds, warm start to 1.8 seconds, and hot start to 0.7 seconds. Overall launch speed improved by 24% across the app.