We present Mantis, a framework for predicting the performance of Android applications on given inputs automatically, accurately, and efficiently. A key insight underlying Mantis is that program execution runs often contain features that correlate with performance and are automatically computable efficiently. Mantis synergistically combines techniques from program analysis and machine learning. It constructs concise performance models by choosing from many program execution features only a handful that are most correlated with the program's execution time yet can be evaluated efficiently from the program's input. We apply program slicing to accurately estimate the evaluation cost of a feature and automatically generate executable code snippets for efficiently evaluating features. Our evaluation shows that Mantis predicts the execution time of six Android apps with estimation error in the range of 2.2-11.9% by executing predictor code costing at most 1.3% of their execution time on Galaxy Nexus.
['Yongin Kwon', 'Sangmin Lee', 'Hayoon Yi', 'Donghyun Kwon', 'Seungjun Yang', 'Byung-Gon Chun', 'Ling Huang', 'Petros Maniatis', 'Mayur Naik', 'Yunheung Paek']
Mantis: automatic performance prediction for smartphone applications