Characterizing energy consumption of third-party API libraries using API utilization profiles

Andreas Hannes Schuler, Gabriele Anderst-Kotsis

Research output: Chapter in Book/Report/Conference proceedingsConference contributionpeer-review

2 Citations (Scopus)

Abstract

Background: Third-party software libraries often serve as fundamental building blocks for developing applications. However, depending on such libraries for development raises a new concern, energy consumption, which has become of increased interest for the software engineering community in recent years. Understanding the energy implications of software design choices is an ongoing research challenge, especially when working with mobile devices that are constrained by limited battery life. Aims: Our goal is to research approaches, which will support software developers to better comprehend the energy implications of software design choices on Android. For this study, we particularly focus on APIs from thirdparty libraries for which we research methods that will enable estimating the energy consumption without the need for specific measurement hardware and laborious measurements. Method: To achieve the stipulated goal we introduce System API Utilization Profiles (uAPI) which are based on the general assumption that the actual energy consumption of a library is directly tied to its utilization of the underlying System API. We provide a formal definition and implementation of the proposed uAPI profiles that are calculated based on dynamic call graphs obtained from a library under test. To further show the connection between our proposed uAPI profiles and energy consumption, we empirically examined their correlation using two experiments. The first one is dedicated to Android I/O operations, the second one examines uAPI profiles based on a popular open-source library for JSON document processing. Results: In our empirical evaluation, we collected 1052 individual call graphs which we used as an input to evaluate the our model and compare it with the actual energy consumption measured. For each call graph, we measured the energy consumption with special hardware and attributed the measurements to individual methods. Based on that data, we examined a strong linear correlation between the proposed uAPI profiles and the actual measured energy consumption. Conclusions: uApi profiles serve as a lightweight and feasible approach to characterize the energy characteristics of thirdparty libraries. Their computation does not involve any special hardware, and there are no alterations on the target mobile device required. For future work, we investigate possibilities to use the proposed uAPI profiles as a foundation for a regression model, which would allow us to predict the energy consumption development of a library over time.

Original languageEnglish
Title of host publicationESEM 2020 - Proceedings of the 14th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement
PublisherIEEE Computer Society
ISBN (Electronic)9781450375801
DOIs
Publication statusPublished - 5 Oct 2020
Event14th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement, ESEM 2020 - Virtual, Online, Italy
Duration: 5 Oct 20207 Oct 2020

Publication series

NameInternational Symposium on Empirical Software Engineering and Measurement
ISSN (Print)1949-3770
ISSN (Electronic)1949-3789

Conference

Conference14th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement, ESEM 2020
Country/TerritoryItaly
CityVirtual, Online
Period05.10.202007.10.2020

Keywords

  • Dynamic program analysis
  • Energy consumption
  • Software energy profiling

Fingerprint

Dive into the research topics of 'Characterizing energy consumption of third-party API libraries using API utilization profiles'. Together they form a unique fingerprint.

Cite this