Preventing Performance Regressions on iOS Apps
Article Summary
JioHotstar was stuck in a frustrating cycle: fix performance issues, ship the update, watch them resurface weeks later. Sound familiar?
Saurabh Kapoor from JioHotstar shares how his team broke the performance regression cycle. They moved from reactive firefighting to proactive detection, testing performance changes before they reach millions of users.
Key Takeaways
- First attempt with Instruments and xctrace failed: 20 seconds generated 200MB files
- XCTMetric framework tracks CPU, memory, hitches, and network without custom tooling
- Performance tests only work on physical devices, not simulators
- Built custom parser using xcresulttool to extract metrics and create baselines
- enablePerformanceTestsDiagnostics flag generates memgraphs and ktrace files automatically
Critical Insight
Automated performance testing using XCTest metrics and custom parsing caught regressions before users noticed, ending the fix and repeat cycle.