~/talk

Fighting Regressions with Benchmarks in CI

Talkat droidcon Toronto 2019 · on Wednesday, 2019-11-13· [testing, android]
links:none on file
links:none on file
slides:none on file

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

  1. 0:00Start
  2. 0:39Storytime!
  3. 1:43Hindsight is 20/20
  4. 2:34Alert on improvements
  5. 3:25Performance toolkit
  6. 3:38Local profiling
  7. 4:03Analytics
  8. 6:37Systrace
  9. 7:36Recording traces
  10. 9:22Jetpack Benchmark
  11. 10:20Library features
  12. 10:47Constraints
  13. 11:41Picking your Benchmarks
  14. 11:57Critical Interactions
  15. 12:27Prioritize
  16. 13:23Possible solutions
  17. 14:12Benchmark Android UI
  18. 14:22UI is performance critical
  19. 19:11Results aren't realistic
  20. 20:30Benchmarking with random data
  21. 20:53RecyclerView Benchmark Notes
  22. 22:03Ul summary
  23. 22:57Continuous integration
  24. 23:07Goals
  25. 23:45Test dashboard
  26. 24:40Benchmark dashboard?
  27. 25:49Detecting regressions
  28. 27:34Variance
  29. 28:30Requirements
  30. 28:44Jetpack's Approach
  31. 31:06Device configuration
  32. 31:16Physical devices
  33. 32:02sustainedPerformanceMode
  34. 32:30Finding supported devices
  35. 34:30Performance workflow
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.