User-perceived performance slowdown in mobile apps can occur in unpredictable and sophisticated ways, with root cause spanning at different layers (app or OS layer). There is a lack of effective approaches to provide cross-layer, holistic insights to diagnose unpredictable performance slowdown on mobile platforms, motivating us to develop PerfProbe as a performance diagnosis framework for mobile platforms.
PerfProbe monitors app performance and records app and OS-layer runtime information in a lightweight manner on mobile devices, and performs systematic, novel statistical analysis on collected runtime traces at different layers to 1) localize code-level performance variance in the form of critical functions and 2) zoom into them to pinpoint system-level root causes in the form of relevant resource factors to explain the performance slowdown. PerfProbe effectively diagnoses performance slowdown due to various root causes in 22 popular Android apps from real-world usage monitoring and in-lab testing, by providing holistic, cross-layer insights to help the root cause diagnosis. Diagnosis findings from PerfProbe provide actionable insights for root cause finding and guiding real-world app developers’ code fixing or adjustment of platform-level policies to reduce user-perceived latency of 6 real Android apps by 32-86%. PerfProbe incurs small system overhead and impact to app performance at runtime and is suitable for real-world deployment.
You can find more details on PerfProbe in our MOBILESoft 2019 paper:
David Ke Hong, Ashkan Nikravesh, Z. Morley Mao, Mahesh Ketkar, Michael Kishinevsky. PerfProbe: A Systematic, Cross-Layer Performance Diagnosis Framework for Mobile Platforms. In Proc. of the 2019 IEEE/ACM 6th International Conference on Mobile Software Engineering and Systems (MOBILESoft 2019). May 25-26, 2019. Montréal, Canada.
A prototype of PerfProbe for Android is available here.