If you're running Macrobenchmark tests to compute interaction latencies, you should check whether the distribution of results is a normal distribution.
If it's not normal, compare outlier traces with traces that are close to the median and you will find systemic perf issues!
Thread 🧵
#AndroidDev
If it's not normal, compare outlier traces with traces that are close to the median and you will find systemic perf issues!
Thread 🧵
#AndroidDev
Comments
Being able to compare perfetto traces is fantastic. I have been working on writing something to make this part simpler as well. Hopefully will have something to share soon.
Read more here: https://blog.p-y.wtf/statistically-rigorous-android-macrobenchmarks
https://blog.p-y.wtf/a-script-to-compare-two-macrobenchmarks-runs
Over time, I found out that engineers didn't really know what to do when a normality test fails, or even what that really means.
One eng asked if they could "see" the distribution
This screenshot is 100% Android Canvas
Which brings me back to the start of this thread: If it's not normal, compare outlier traces with traces that are close to the median and you will find systemic perf issues!
Here's an example of what that looks like.
This quickly tells me what's changed, e.g. HeapTaskDaemon = GC