Fighting Regressions with Benchmarks in CI
summary
Uses Jetpack Benchmark to catch perf regressions in CI by running instrumented benchmarks on physical devices (preferably with sustained performance mode), outputting JSON reports and integrating with Android Studio. Demonstrates a real regression caused by a getProcessName call moved into init and fixed by making it lazy. Shows RecyclerView scroll benchmarks using a one‑pixel height trick and randomized text to get ~1% stddev. Detects regressions with the StepFit algorithm (gap ÷ local variance) rather than fixed 20% thresholds.
AI-written summary · about
chapters (35)
- 0:00Start
- 0:39Storytime!
- 1:43Hindsight is 20/20
- 2:34Alert on improvements
- 3:25Performance toolkit
- 3:38Local profiling
- 4:03Analytics
- 6:37Systrace
- 7:36Recording traces
- 9:22Jetpack Benchmark
- 10:20Library features
- 10:47Constraints
- 11:41Picking your Benchmarks
- 11:57Critical Interactions
- 12:27Prioritize
- 13:23Possible solutions
- 14:12Benchmark Android UI
- 14:22UI is performance critical
- 19:11Results aren't realistic
- 20:30Benchmarking with random data
- 20:53RecyclerView Benchmark Notes
- 22:03Ul summary
- 22:57Continuous integration
- 23:07Goals
- 23:45Test dashboard
- 24:40Benchmark dashboard?
- 25:49Detecting regressions
- 27:34Variance
- 28:30Requirements
- 28:44Jetpack's Approach
- 31:06Device configuration
- 31:16Physical devices
- 32:02sustainedPerformanceMode
- 32:30Finding supported devices
- 34:30Performance workflow
related talks
44mPractical guide to performance Benchmarks
47mUsing Benchmarks for Tracking Regressions and Improving UI performance
25mJetpack Benchmark and where to find them
26mJetpack Benchmarks and Where to Find Them
40mMonitor App performance using Jetpack Benchmark
29mAndroid Benchmarking and other stories
33mAndroid Benchmarking and other stories
33mAndroid Benchmarking and other stories
