Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.5555/3291168.3291206acmotherconferencesArticle/Chapter ViewAbstractPublication PagesosdiConference Proceedingsconference-collections
Article

Differential energy profiling: energy optimization via diffing similar apps

Published: 08 October 2018 Publication History

Abstract

Mobile app energy profilers provide a foundational energy diagnostic tool by identifying energy hotspots in the app source code. However, they only tackle the first challenge faced by developers, as, after presented with the energy hotspots, developers typically do not have any guidance on how to proceed with the remaining optimization process: (1) Is there a more energy-efficient implementation for the same app task? (2) How to come up with the more efficient implementation?
To help developers tackle these challenges, we developed a new energy profiling methodology called differential energy profiling that automatically uncovers more efficient implementations of common app tasks by leveraging existing implementations of similar apps which are bountiful in the app marketplace. To demonstrate its effectiveness, we implemented such a differential energy profiler, DIFFPROF, for Android apps and used it to profile 8 groups (from 6 popular app categories) of 5 similar apps each. Our extensive case studies show that DIFFPROF provides developers with actionable diagnosis beyond a traditional energy profiler: it identifies non-essential (unmatched or extra) and known-to-be inefficient (matched) tasks, and the call trees of tasks it extracts further allow developers to quickly understand the reasons and develop fixes for the energy difference with minor manual debugging efforts.

References

[1]
Apache maven project. http://maven.apache.org.
[2]
Create.net apps faster with NuGeT. https://www.nuget.org.
[3]
Delayed loading of views. https://developer.android.com/training/improving-layouts/loading-ondemand.html#ViewStub.
[4]
dex2jar. https://sourceforge.net/projects/dex2jar/.
[5]
dexinfo. https://github.com/poliva/dexinfo.
[6]
Npm package manager. https://www.npmjs.com.
[7]
Optimizing battery life. https://developer.android.com/training/monitoring-device-state/index.html.
[8]
Using compound drawables. https://developer.android.com/training/improving-layouts/optimizing-layout.html#Lint.
[9]
AMMONS, G., BALL, T., AND LARUS, J. R. Exploiting hardware performance counters with flow and context sensitive profiling. ACM Sigplan Notices 32, 5 (1997), 85-96.
[10]
ANAND, A., GUPTA, A., AKELLA, A., SESHAN, S., AND SHENKER, S. Packet caches on routers: the implications of universal redundant traffic elimination. In Proc. of ACM SIGCOMM (2008), pp. 219-230.
[11]
ANAND, A., SEKAR, V., AND AKELLA, A. Smartre: an architecture for coordinated network-wide redundancy elimination. In Proc. of ACM SIGCOMM (2009), pp. 87-98.
[12]
BILLE, P. A survey on tree edit distance and related problems. Theoretical computer science 337, 1 (2005), 217-239.
[13]
CALCAGNO, C., DISTEFANO, D., DUBREIL, J., GABI, D., HOOIMEIJER, P., LUCA, M., OHEARN, P., PAPAKONSTANTINOU, I., PURBRICK, J., AND RODRIGUEZ, D. Moving fast with software verification. In NASA Formal Methods Symposium (2015), Springer, pp. 3-11.
[14]
CHEN, A., WU, Y., HAEBERLEN, A., ZHOU, W., AND LOO, B. T. The good, the bad, and the differences: Better network diagnostics with differential provenance. In Proc. of ACM SIGCOMM (2016), pp. 115-128.
[15]
COPPA, E., DEMETRESCU, C., AND FINOCCHI, I. Input-sensitive profiling. ACM SIGPLAN Notices 47, 6 (2012), 89-98.
[16]
COZZIE, A., STRATTON, F., XUE, H., AND KING, S. T. Digging for data structures. In Proc. of USENIX OSDI (2008), pp. 255-266.
[17]
CURTSINGER, C., AND BERGER, E. D. Coz: finding code that counts with causal profiling. In Proceedings of the 25th Symposium on Operating Systems Principles (2015), ACM, pp. 184-197.
[18]
DING, N., AND HU, Y. C. Gfxdoctor: A holistic graphics energy profiler for mobile devices. In Proceedings of the Twelfth European Conference on Computer Systems (2017), ACM, pp. 359-373.
[19]
Erlenmeyer flask. https://en.wikipedia.org/wiki/Erlenmeyer_flask.
[20]
GRAHAM, S. L., KESSLER, P. B., AND MCKUSICK, M. K. gprof: A call graph execution profiler. In Proc. of ACM PLDI (1982).
[21]
GUO, L., ROYCHOUDHURY, A., AND WANG, T. Accurately choosing execution runs for software fault localization. In International Conference on Compiler Construction (2006), Springer, pp. 80-95.
[22]
GUPTA, R., HARROLD, M. J., AND SOFFA, M. L. An approach to regression testing using slicing. In Software Maintenance, 1992. Proceedings., Conference on (1992), IEEE, pp. 299-308.
[23]
HASSAN, A. E. Predicting faults using the complexity of code changes. In Proceedings of the 31st International Conference on Software Engineering (2009), IEEE Computer Society, pp. 78-88.
[24]
HUNT, A., AND THOMAS, D. The Pragmatic Programmer: From Journeyman to Master. Addison Wesley Longman, Inc., ISBN-10: 020161622X., 1999.
[25]
HWANG, C., PUSHP, S., KOH, C., YOON, J., LIU, Y., CHOI, S., AND SONG, J. Raven: Perception-aware optimization of power consumption for mobile games. In Proceedings of the 23rd Annual International Conference on Mobile Computing and Networking (2017), ACM, pp. 422-434.
[26]
Energy efficiency and the user experience. https://developer.apple.com/library/archive/documentation/Performance/Conceptual/EnergyGuide-iOS/EnergyandNetworking.html.
[27]
JOHNSON, N. M., CABALLERO, J., CHEN, K. Z., MCCAMANT, S., POOSANKAM, P., REYNAUD, D., AND SONG, D. Differential slicing: Identifying causal execution differences for security applications. In Security and Privacy (SP), 2011 IEEE Symposium on (2011), IEEE, pp. 347-362.
[28]
JOSHI, P., PARK, C.-S., SEN, K., AND NAIK, M. A randomized dynamic program analysis technique for detecting real deadlocks. In Proc. of ACM PLDI (2009), pp. 110-120.
[29]
KULKARNI, P., DOUGLIS, F., LAVOIE, J. D., AND TRACEY, J. M. Redundancy elimination within large collections of files. In USENIX Annual Technical Conference, General Track (2004), pp. 59-72.
[30]
KÜSTNER, T., WEIDENDORFER, J., AND WEINZIERL, T. Argument controlled profiling. In European Conference on Parallel Processing (2009), Springer, pp. 177-184.
[31]
MITTAL, R., KANSAL, A., AND CHANDRA, R. Empowering developers to estimate app energy consumption. In Proc. of ACM MobiCom (2012).
[32]
PATHAK, A., HU, Y. C., AND ZHANG, M. Where is the energy spent inside my app? fine grained energy accounting on smartphones with eprof. In Proc. of EuroSys (2012).
[33]
PERKINSA, J. H., KIMB, S., LARSENG, S., AMARASINGHEA, S., BACHRACHA, J., CARBINA, M., PACHECOD, C., SHERWOOD, F., SIDIROGLOUA, S., SULLIVANE, G., WONGZ, W.-F., ERNSTQ, Y. Z. M. D., AND RINARD, M. Automatically patching errors in deployed software. In SOSP (2009), pp. 87-102.
[34]
QIAN, F., WANG, Z., GERBER, A., MAO, Z., SEN, S., AND SPATSCHECK, O. Profiling resource usage for mobile applications: a cross-layer approach. In Proc. of Mobisys (2011).
[35]
RAVINDRANATH, L., PADHYE, J., AGARWAL, S., MAHAJAN, R., OBERMILLER, I., AND SHAYANDEH, S. Appinsight: mobile app performance monitoring in the wild. In Proc. of USENIX OSDI (2012), pp. 107-120.
[36]
ROTHERMEL, G., AND HARROLD, M. J. Selecting regression tests for object-oriented software. In ICSM (1994), vol. 94, pp. 14-25.
[37]
SHEN, K., STEWART, C., LI, C., AND LI, X. Reference-driven performance anomaly identification. In ACM SIGMETRICS (2009), pp. 85-96.
[38]
TAI, K.-C. The tree-to-tree correction problem. Journal of the ACM (JACM) 26, 3 (1979), 422-433.
[39]
TALLENT, N. R., AND MELLOR-CRUMMEY, J. M. Effective performance measurement and analysis of multithreaded applications. In PPoPP (2009), ACM, pp. 229-240.
[40]
TAN, L., YUAN, D., KRISHNA, G., AND ZHOU, Y. *icomment: bugs or bad comments?*. In Proc. of ACMSOSP (2007), pp. 145-158.
[41]
WAGNER, R. A., AND FISCHER, M. J. The string-to-string correction problem. Journal of the ACM (JACM) 21, 1 (1974), 168-173.
[42]
WANG, H. J., PLATT, J. C., CHEN, Y., ZHANG, R., AND WANG, Y.-M. Automatic misconfiguration troubleshooting with peerpressure. In Proc. of USENIX OSDI (2004), pp. 245-258.
[43]
XIN, B., SUMNER, W. N., AND ZHANG, X. Efficient program execution indexing. In Proc. of ACM PLDI (2008), ACM, pp. 238-248.
[44]
ZHANG, K. Algorithms for the constrained editing distance between ordered labeled trees and related problems. Pattern recognition 28, 3 (1995), 463-474.
[45]
ZHANG, X., TALLAM, S., GUPTA, N., AND GUPTA, R. Towards locating execution omission errors. In Proc. of ACM PLDI (2007), ACM, pp. 415-424.
[46]
ZHANG, J., RENGANARAYANA, L., ZHANG, X., GE, N., BALA, V., XU, T., AND ZHOU, Y. Encore: exploiting system environment and correlation information for misconfiguration detection. In ASPLOS (2014), pp. 687-700.

Cited By

View all
  • (2019)Understanding the Predictability of Smartwatch UsageThe 5th ACM Workshop on Wearable Systems and Applications10.1145/3325424.3329661(11-16)Online publication date: 12-Jun-2019

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Other conferences
OSDI'18: Proceedings of the 13th USENIX conference on Operating Systems Design and Implementation
October 2018
815 pages
ISBN:9781931971478

Sponsors

  • NetApp
  • Google Inc.
  • NSF
  • Microsoft: Microsoft
  • Facebook: Facebook

In-Cooperation

Publisher

USENIX Association

United States

Publication History

Published: 08 October 2018

Check for updates

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 13 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2019)Understanding the Predictability of Smartwatch UsageThe 5th ACM Workshop on Wearable Systems and Applications10.1145/3325424.3329661(11-16)Online publication date: 12-Jun-2019

View Options

View options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media