ABSTRACT
Where is the energy spent inside my app? Despite the immense popularity of smartphones and the fact that energy is the most crucial aspect in smartphone programming, the answer to the above question remains elusive. This paper first presents eprof, the first fine-grained energy profiler for smartphone apps. Compared to profiling the runtime of applications running on conventional computers, profiling energy consumption of applications running on smartphones faces a unique challenge, asynchronous power behavior, where the effect on a component's power state due to a program entity lasts beyond the end of that program entity. We present the design, implementation and evaluation of eprof on two mobile OSes, Android and Windows Mobile.
We then present an in-depth case study, the first of its kind, of six popular smartphones apps (including Angry-Birds, Facebook and Browser). Eprof sheds lights on internal energy dissipation of these apps and exposes surprising findings like 65%-75% of energy in free apps is spent in third-party advertisement modules. Eprof also reveals several "wakelock bugs", a family of "energy bugs" in smartphone apps, and effectively pinpoints their location in the source code. The case study highlights the fact that most of the energy in smartphone apps is spent in I/O, and I/O events are clustered, often due to a few routines. Thismotivates us to propose bundles, a new accounting presentation of app I/O energy, which helps the developer to quickly understand and optimize the energy drain of her app. Using the bundle presentation, we reduced the energy consumption of four apps by 20% to 65%.
- "Mobile app internet recasts the software and services landscape." URL: http://tinyurl.com/5s3hhx6Google Scholar
- "Apples app store downloads top 10 billion." URL: http://www.apple.com/pr/library/2011/01/22appstore.htmlGoogle Scholar
- S. L. Graham, P. B. Kessler, and M. K. McKusick, "gprof: A call graph execution profiler," in Proc. of PLDI, 1982.Google Scholar
- A. Pathak, Y. C. Hu, M. Zhang, P. Bahl, and Y.-M. Wang, "Fine-grained power modeling for smartphones using system-call tracing," in Proc. of EuroSys, 2011. Google ScholarDigital Library
- N. Balasubramanian and et.al., "Energy consumption in mobile phones: a measurement study and implications for network applications," in Proc of IMC, 2009. Google ScholarDigital Library
- L. Zhang and et.al., "Accurate Online Power Estimation and Automatic Battery Behavior Based Power Model Generation for Smartphones," in Proc. of CODES+ISSS, 2010. Google ScholarDigital Library
- "Flurry: Mobile analytics." URL: http://www.flurry.com/Google Scholar
- "Android powermanager: Wakelocks." URL: http://developer.android.com/reference/android/os/PowerManager.htmlGoogle Scholar
- A. Pathak, Y. C. Hu, and M. Zhang, "Bootstrapping energy debugging for smartphones: A first look at energy bugs in mobile devices," in Proc. of Hotnets, 2011. Google ScholarDigital Library
- "Facebook 1.3 not releasing partial wake lock." URL: http://geekfor.me/news/facebook-1--3-wakelock/Google Scholar
- "Email 2.3 app keeps awake when no data connection is available." URL: http://www.google.com/support/forum/p/Google+Mobile/thread?tid=53bfe134321358e8Google Scholar
- "Email application partial wake lock." URL: http://code.google.com/p/android/issues/detail?id=9307Google Scholar
- "Using a locationlistener is generally unsafe for leaving a permanent partial_wake_lock." URL: http://code.google.com/p/android/issues/detail?id=4333Google Scholar
- F. Qian, Z. Wang, A. Gerber, Z. Mao, S. Sen, and O. Spatscheck, "Characterizing radio resource allocation for 3g networks," in Proc of IMC, 2010. Google ScholarDigital Library
- A. Kansal, F. Zhao, J. Liu, N. Kothari, and A. Bhattacharya, "Virtual machine power metering and provisioning," in Proc. of SOCC, 2010. Google ScholarDigital Library
- F. Rawson, "MEMPOWER: A simple memory power analysis tool set," IBM Austin Research Laboratory, 2004.Google Scholar
- M. Dong, Y. Choi, and L. Zhong, "Power modeling of graphical user interfaces on OLED displays," in Proc. of DAC, 2009. Google ScholarDigital Library
- "perf: Linux profiling with performance counters." URL: https://perf.wiki.kernel.org/Google Scholar
- "Android debug class." URL: http://en.wikipedia.org/wiki/Nexus\_One\#HardwareGoogle Scholar
- "Android debug class." URL: http://developer.android.com/reference/android/os/Debug.htmlGoogle Scholar
- "Android ndk profiler." URL: http://code.google.com/p/android-ndk-profiler/Google Scholar
- "Cyanogenmod." URL: http://www.cyanogenmod.com/Google Scholar
- "Introducing utrace." URL: http://lwn.net/Articles/224772/Google Scholar
- System tap." URL: http://sourceware.org/systemtap/Google Scholar
- "Profiling with traceview." URL: http://developer.android.com/guide/developing/debugging/debugging-tracing.htmlGoogle Scholar
- Skin recognition in c#." URL: http://www.codeproject.com/KB/cs/Skin_RecC_.aspxGoogle Scholar
- "C# micro chess (huo chess)." URL: http://archive.msdn.microsoft.com/cshuochessGoogle Scholar
- "Open source Android app." URL: http://en.wikipedia.org/wiki/List_of_open_source_Android_applicationsGoogle Scholar
- "itextsharp." URL: http://itextsharp.sourceforge.net/Google Scholar
- "Exocortex.dsp: C# complex number and fft library for microsoft .net." URL: http://www.exocortex.org/dsp/Google Scholar
- "Chess free: Ai factory limited." URL: https://market.android.com/details?id=uk.co.aifactory.chessfreeGoogle Scholar
- J. Flinn and M. Satyanarayanan, "Powerscope: A tool for profiling the energy usage of mobile applications," in Proc. of WMCSA, 1999. Google ScholarDigital Library
- F. Jason and S. Mahadev, "Energy-aware adaptation for mobile applications," in Proc. of SOSP, 1999. Google ScholarDigital Library
- T. Li and L. John, "Run-time modeling and estimation of operating system power consumption," SIGMETRICS, 2003. Google ScholarDigital Library
- R. Fonseca, P. Dutta, P. Levis, and I. Stoica, "Quanto: Tracking energy in networked embedded systems," in OSDI, 2008. Google ScholarDigital Library
- A. Roy, S. M. Rumble, R. Stutsman, P. Levis, D. Mazieres, and N. Zeldovich, "Energy management in mobile devices with the Cinder operating system," in Proc. of EuroSys, 2011. Google ScholarDigital Library
- "Power monitor for Android." URL: http://powertutor.org/Google Scholar
- "Monsoon power monitor." URL: http://www.msoon.com/ LabEquipment/PowerMonitor/Google Scholar
- E. Cuervo, B. Aruna, D. ki Cho, A. Wolman, S. Saroiu, R. Chandra, and P. Bahl, "Maui: Making smartphones last longer with code offload," in MobiSys, 2010. Google ScholarDigital Library
- B.-G. Chun and P. Maniatis, "Augmented Smartphone Applications Through Clone Cloud Execution ," in HotOs, 2009. Google ScholarDigital Library
- "Khronos: Egl interface." URL: http://www.khronos.org/Google Scholar
- "Adwhirl by admod." URL: https://www.adwhirl.com/Google Scholar
- "Jackson: Json processor." URL: http://jackson.codehaus.org/Google Scholar
- "Skyhook: Location positioning, context and intelligence." URL: http://www.skyhookwireless.com/Google Scholar
- "Android proguard." URL: http://developer.android.com/guide/developing/tools/proguard.htmlGoogle Scholar
- "Decompiling apps." URL: http://siis.cse.psu.edu/ded/Google Scholar
- G. C. Murphy, D. Notkin, W. G. Griswold, and E. S. Lan, "An empirical study of static call graph extractors," ACM Trans. Softw. Eng. Methodol., vol. 7, April 1998. Google ScholarDigital Library
- J. Spivey, "Fast, accurate call graph profiling," Software: Practice and Experience, 2004. Google ScholarDigital Library
- M. Dmitriev, "Profiling Java applications using code hotswapping and dynamic call graph revelation," in Proceedings of the 4th International Workshop on Software and Performance. ACM, 2004, pp. 139--150. Google ScholarDigital Library
- D. Grove, G. DeFouw, J. Dean, and C. Chambers, "Call graph construction in object-oriented languages," ACM SIGPLAN Notices, vol. 32, no. 10, pp. 108--124, 1997. Google ScholarDigital Library
- "Oprofile." URL: http://oprofile.sourceforge.net/news/Google Scholar
- K. Asanovic and K. Koskelin, "EProf: an energy profiler for the iPAQ," MS Thesis, MIT 2004.Google Scholar
- T. Stathopoulos, D. McIntire, and W. Kaiser, "The energy endoscope: Real-time detailed energy accounting for wireless sensor nodes," in IPSN, 2008. Google ScholarDigital Library
- A. Carroll and G. Heiser, "An analysis of power consumption in a smartphone," in Proc. of USENIX ATC, 2010. Google ScholarDigital Library
- A. Shye, B. Scholbrock, and G. Memik, "Into the wild: studying real user activity patterns to guide power optimizations for mobile architectures," in Proc. of MICRO, 2009. Google ScholarDigital Library
- Y. Wang, J. Lin, M. Annavaram, Q. Jacobson, J. Hong, B. Krishnamachari, and N. Sadeh, "A framework of energy efficient mobile sensing for automatic user state recognition," in Proc. of Mobisys, 2009. Google ScholarDigital Library
- S. Kang, J. Lee, H. Jang, H. Lee, Y. Lee, S. Park, T. Park, and J. Song, "Seemon: scalable and energy-efficient context monitoring framework for sensor-rich mobile environments," in Proc. of Mobisys, 2008. Google ScholarDigital Library
- Y. Agarwal, R. Chandra, A. Wolman, P. Bahl, K. Chin, and R. Gupta, "Wireless wakeups revisited: energy management for voip over wi-fi smartphones," in Proc. of Mobisys, 2007. Google ScholarDigital Library
- F. Qian, Z. Wang, A. Gerber, Z. Mao, S. Sen, and O. Spatscheck, "Profiling resource usage for mobile applications: a cross-layer approach," in Proc. of Mobisys, 2011. Google ScholarDigital Library
- M. Ra, J. Paek, A. Sharma, R. Govindan, M. Krieger, and M. Neely, "Energy-delay tradeoffs in smartphone applications," in Proc. of Mobisys, 2010. Google ScholarDigital Library
Index Terms
- Where is the energy spent inside my app?: fine grained energy accounting on smartphones with Eprof
Recommendations
What is keeping my phone awake?: characterizing and detecting no-sleep energy bugs in smartphone apps
MobiSys '12: Proceedings of the 10th international conference on Mobile systems, applications, and servicesDespite their immense popularity in recent years, smartphones are and will remain severely limited by their battery life. Preserving this critical resource has driven smartphone OSes to undergo a paradigm shift in power management: by default every ...
Reducing Energy Consumption of Alarm-induced Wake-ups on Android Smartphones
HotMobile '15: Proceedings of the 16th International Workshop on Mobile Computing Systems and ApplicationsAlarms are often used to set smartphones to perform tasks at scheduled times. Many applications use alarm functionality, and devices consequently experience frequent wake-ups and waste energy. In this paper, we analyze alarm-induced wake-ups in the ...
WakeScope: runtime WakeLock anomaly management scheme for Android platform
EMSOFT '13: Proceedings of the Eleventh ACM International Conference on Embedded SoftwareAndroid provides a WakeLock mechanism for application developers to ensure the proper execution of applications without having to enter the sleep state of a device. When using the WakeLock mechanism, application developers should bear the responsibility ...
Comments