Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/2757667.2757674acmconferencesArticle/Chapter ViewAbstractPublication PagessystorConference Proceedingsconference-collections
research-article

Impact of GC design on power and performance for Android

Published: 26 May 2015 Publication History

Abstract

Small mobile devices have evolved to versatile computing systems. Android devices run a complete software stack, including a full Linux kernel, user land with several software daemons and a virtual machine to run applications. On these mobile systems energy is a scarce resource and needs to be handled carefully. Current systems rely on governors that adjust the frequency of individual cores depending on the system load.
We measure energy consumption of different components of this complex software stack, including garbage collection (GC) of the Android virtual machine. Here we propose several extensions to the default GC configuration of Android, including a generational collector, across established dimensions of heap memory size and concurrency.
Our evaluation shows that Android's asynchronous GC thread consumes a significant amount of energy. Therefore, varying the GC strategy can reduce total on-chip energy (by 20--30%) whilst slightly impacting application throughput (by 10--40%) and increasing worst-case pause times (by 20--30%). Our work quantifies the direct impact of GC on mobile system, enumerates the main factors and layers of this relationship, and offers a guide for analysis of memory behavior in understanding and tuning system performance.

References

[1]
M. Arnold, S. Fink, D. Grove, M. Hind, and P. F. Sweeney. Adaptive optimization in the jalapeño JVM. In ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, pages 47--65, Minneapolis, Minnesota, Oct. 2000.
[2]
ART and Dalvik. URL https://source.android.com/devices/tech/dalvik/art.html.
[3]
S. M. Blackburn, R. Garner, C. Hoffman, A. M. Khan, K. S. McKinley, R. Bentzur, A. Diwan, D. Feinberg, D. Frampton, S. Z. Guyer, M. Hirzel, A. L. Hosking, M. Jump, H. Lee, J. E. B. Moss, A. Phansalkar, D. Stefanović, T. VanDrunen, D. von Dincklage, and B. Wiedermann. The DaCapo benchmarks: Java benchmarking development and analysis. In ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, pages 169--190, Portland, Oregon, Oct. 2006.
[4]
S. M. Blackburn, R. Garner, C. Hoffman, A. Khan, K. S. McKinley, R. Bentzur, A. Diwan, D. Feinberg, S. Z. Guyer, A. Hosking, M. Jump, J. E. B. Moss, D. Stefanovic, T. VanDrunen, D. von Dincklage, and B. Widerman. Wake up and smell the coffee: Evaluation methodology for the 21st century. Commun. ACM, 51 (8): 83--89, Aug. 2008.
[5]
T. Brecht, E. Arjomandi, C. Li, and H. Pham. Controlling garbage collection and heap growth to reduce the execution time of Java applications. In ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, pages 353--366, Tampa, Florida, Nov. 2001.
[6]
D. Brodowski. CPU frequency and voltage scaling code in the Linux kernel. URL https://www.kernel.org/doc/Documentation/cpu-freq/governors.txt.
[7]
T. Cao, S. M. Blackburn, T. Gao, and K. S. McKinley. The yin and yang of power and performance for asymmetric hardware and managed software. In International Symposium on Computer Architecture, pages 225--236, Portland, Oregon, June 2012.
[8]
A. Carroll and G. Heiser. An analysis of power consumption in a smartphone. In USENIX Annual Technical Conference, pages 271--284, Boston, Massachusetts, June 2010. URL https://www.usenix.org/legacy/event/atc10/tech/full_papers/Carroll.pdf.
[9]
A. Carroll and G. Heiser. Unifying DVFS and offlining in mobile multicores. In IEEE Real-Time and Embedded Technology and Applications Symposium, pages 287--296, Berlin, Germany, Apr. 2014.
[10]
G. Chen, M. T. Kandemir, N. Vijaykrishnan, M. J. Irwin, and M. Wolczko. Adaptive garbage collection for battery-operated environments. In USENIX Java Virtual Machine Research and Technology Symposium, pages 1--12, San Francisco, California, Aug. 2002a. URL https://www.usenix.org/legacy/event/jvm02/chen_g.html.
[11]
G. Chen, R. Shetty, M. Kandemir, N. Vijaykrishnan, M. J. Irwin, and M. Wolczko. Tuning garbage collection for reducing memory system energy in an embedded Java environment. ACM Transactions on Embedded Computing Systems, 1(1): 27--55, Nov. 2002b.
[12]
X. Chen, A. Jindal, and Y. C. Hu. How much energy can we save from prefetching ads?: Energy drain analysis of top 100 apps. In ACM Workshop on Power-Aware Computing and Systems, HotPower, pages 3:1--3:5, Farmington, Pennsylvania, 2013.
[13]
P. Cheng and G. E. Blelloch. A parallel, real-time garbage collector. In ACM SIGPLAN International Conference on Programming Language Design and Implementation, pages 125--136, Snowbird, Utah, June 2001.
[14]
F. M. David, J. C. Carlyle, and R. H. Campbell. Context switch overheads for Linux on ARM platforms. In Workshop on Experimental Computer Science, San Diego, California, 2007. ACM.
[15]
S. Dieckmann and U. Hölzle. A study of the allocation behavior of the SPECjvm98 Java benchmarks. In European Conference on Object-Oriented Programming, Lecture Notes in Computer Science, pages 92--115, Lisbon, Portugal, July 1999.
[16]
E. W. Dijkstra, L. Lamport, A. J. Martin, C. S. Scholten, and E. F. M. Steffens. On-the-fly garbage collection: An exercise in cooperation. Commun. ACM, 21(11): 966--975, Nov. 1978.
[17]
T. Domani, E. K. Kolodner, E. Lewis, E. E. Salant, K. Barabash, I. Lahan, Y. Levanoni, E. Petrank, and I. Yanorer. Implementing an on-the-fly garbage collector for Java. In ACM SIGPLAN International Symposium on Memory Management, pages 155--166, Minneapolis, Minnesota, Oct. 2000.
[18]
B. Dufour, K. Driesen, L. Hendren, and C. Verbrugge. Dynamic metrics for Java. In ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, pages 149--168, Anaheim, California, Oct. 2003.
[19]
R. Efron. Conservation of temporal information by perceptual systems. Perception & Psychophysics, 14(3): 518--530, Oct. 1973.
[20]
D. Ehringer. The Dalvik Virtual Machine Architecture, Mar. 2010. URL http://davidehringer.com/software/android/The_Dalvik_Virtual_Machine.pdf.
[21]
H. Esmaeilzadeh, T. Cao, Y. Xi, S. M. Blackburn, and K. S. McKinley. Looking back on the language and hardware revolutions: Measured power, performance, and scaling. In ACM Conference on Architectural Support for Programming Languages and Operating Systems, pages 319--332, Newport Beach, California, Mar. 2011.
[22]
Market Share: Ultramobiles by Region, OS and Form Factor, 4Q13 and 2013. Gartner, Feb. 2014. URL https://www.gartner.com/doc/2672716/market-share-ultramobiles-region-os.
[23]
A. Gautham, K. Korgaonkar, P. Slpsk, S. Balachandran, and K. Veezhinathan. The implications of shared data synchronization techniques on multi-core energy efficiency. In USENIX Conference on Power-Aware Computing and Systems, HotPower, Hollywood, California, Oct. 2012. URL https://www.usenix.org/system/files/conference/hotpower12/hotpower12-final40.pdf.
[24]
A. Georges, D. Buytaert, and L. Eeckhout. Statistically rigorous Java performance evaluation. In ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, pages 57--76, Montréal, Canada, Oct. 2007.
[25]
P. Griffin, W. Srisa-an, and J. M. Chang. An energy efficient garbage collector for Java embedded devices. In ACM SIGPLAN/SIGBED Conference on Languages, Compilers, and Tools for Embedded Systems, pages 230--238, Chicago, Illinois, June 2005.
[26]
S. Hao, D. Li, W. G. J. Halfond, and R. Govindan. Estimating mobile application energy consumption using program analysis. In International Conference on Software Engineering, pages 92--101, San Francisco, California, May 2013. IEEE Press.
[27]
Intrinsync. DragonBoard development board based on the Qualcomm Snapdragon 800 processor (APQ8074). URL http://mydragonboard.org/db8074.
[28]
A. Iyer and D. Marculescu. Power efficiency of voltage scaling in multiple clock, multiple voltage cores. In IEEE/ACM International Conference on Computer-Aided Design, pages 379--386, San Jose, California, Nov. 2002.
[29]
A. Jindal, A. Pathak, Y. C. Hu, and S. Midkiff. Hypnos: Understanding and treating sleep conflicts in smartphones. In ACM European Conference on Computer Systems, EuroSys, pages 253--266, Prague, Czech Republic, 2013. ISBN 978-1-4503-1994-2.
[30]
R. Jones, A. Hosking, and E. Moss. The Garbage Collection Handbook: The Art of Automatic Memory Management. Chapman & Hall/CRC Press, 2011.
[31]
T. Kalibera and R. Jones. Rigorous benchmarking in reasonable time. In The International Symposium on Memory Management, pages 63--74, Seattle, Washington, June 2013.
[32]
T. Kalibera, M. Mole, R. Jones, and J. Vitek. A black-box approach to understanding concurrency in DaCapo. In ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, pages 335--354, Tucson, Arizona, Oct. 2012.
[33]
M. Kambadur and M. A. Kim. An experimental survey of energy management across the stack. In ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, pages 329--344, Portland, Oregon, Oct. 2014.
[34]
H. Lieberman and C. E. Hewitt. A real-time garbage collector based on the lifetimes of objects. Commun. ACM, 26(6): 419--429, June 1983.
[35]
A. Miyoshi, C. Lefurgy, E. Van Hensbergen, R. Rajamony, and R. Rajkumar. Critical power slope: Understanding the runtime effects of frequency scaling. In International Conference on Supercomputing, pages 35--44, New York, New York, June 2002. ACM.
[36]
monkeyrunner. URL http://developer.android.com/tools/help/monkeyrunner_concepts.html.
[37]
National Instruments. NI USB-6008/6009 user guide and specifications: Bus-powered multifunction DAQ USB device, Feb. 2012. URL http://www.ni.com/pdf/manuals/371303m.pdf.
[38]
S. Park, W. Jiang, Y. Zhou, and S. Adve. Managing energy-performance tradeoffs for multithreaded applications on multiprocessor architectures. In ACM SIGMETRICS International Conference on Measurement and Modeling of Computer Systems, pages 169--180, San Diego, California, June 2007.
[39]
A. Pathak, Y. C. Hu, M. Zhang, P. Bahl, and Y.-M. Wang. Fine-grained power modeling for smartphones using system call tracing. In ACM European Conference on Computer Systems, pages 153--168, Salzburg, Austria, Apr. 2011.
[40]
A. Pathak, Y. C. Hu, and M. Zhang. Where is the energy spent inside my app?: Fine grained energy accounting on smartphones with eprof. In ACM European Conference on Computer Systems, pages 29--42, Bern, Switzerland, Apr. 2012.
[41]
G. Pinto, F. Castor, and Y. D. Liu. Understanding energy behaviors of thread management constructs. In ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, pages 345--360, Portland, Oregon, Oct. 2014.
[42]
T. Printezis. On measuring garbage collection responsiveness. Science of Computer Programming, 62(2): 164--183, Oct. 2006.
[43]
J. B. Sartor and L. Eeckhout. Exploring multi-threaded Java application performance on multicore hardware. In ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, pages 281--296, Tucson, Arizona, Oct. 2012.
[44]
Standard Performance Evaluation Corporation. SPECjvm98 Benchmarks, release 1.03 edition, Mar. 1999. URL http://www.spec.org/jvm98.
[45]
D. M. Ungar. Generation scavenging: A non-disruptive high performance storage reclamation algorithm. In ACM SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments, pages 157--167, Pittsburgh, Pennsylvania, Apr. 1984.
[46]
N. Vijaykrishnan, M. Kandemir, S. Kim, S. Tomar, A. Sivasubramaniam, and M. J. Irwin. Energy behavior of Java applications from the memory perspective. In USENIX Java Virtual Machine Research and Technology Symposium, Monterey, California, Apr. 2001. URL https://www.usenix.org/legacy/events/jvm01/full_papers/vijaykrishnan/vijaykrishnan.pdf.
[47]
V. M. Weaver, D. Terpstra, and S. Moore. Non-determinism and overcount on modern hardware performance counter implementations. IEEE International Symposium on Performance Analysis of Systems and Software, pages 215--224, Apr. 2013.
[48]
R. Wilhelm, J. Engblom, A. Ermedahl, N. Holsti, S. Thesing, D. Whalley, G. Bernat, C. Ferdinand, R. Heckmann, T. Mitra, F. Mueller, I. Puaut, P. Puschner, J. Staschulat, and P. Stenström. The worst-case execution-time problem --- overview of methods and survey of tools. ACM Transactions on Embedded Computing Systems, 7(3): 36:1--36:53, May 2008.

Cited By

View all
  • (2024)VESTA: Power Modeling with Language Runtime EventsProceedings of the ACM on Programming Languages10.1145/36564028:PLDI(621-646)Online publication date: 20-Jun-2024
  • (2024)Memory Management on Mobile DevicesProceedings of the 2024 ACM SIGPLAN International Symposium on Memory Management10.1145/3652024.3665510(15-29)Online publication date: 20-Jun-2024
  • (2023)Vincent: Green hot methods in the JVMScience of Computer Programming10.1016/j.scico.2023.102962230(102962)Online publication date: Aug-2023
  • Show More Cited By

Recommendations

Reviews

David E. Goldfarb

Android's garbage collection (GC) strategy is investigated in this paper in impressive detail. The authors do a good job of explaining how GC works in Dalvik, have ported a significant number of benchmarks, and have collected statistics that appear to be detailed and accurate. Unfortunately, the paper is rapidly becoming dated. Newer Android devices run Android Runtime (ART) rather than Dalvik. ART's GC already includes many of the optimizations suggested by this paper (most notably a generational GC). Parts of this paper do remain relevant, such as the authors' suggestions of system changes to allow for better and more repeatable benchmarking access. However, most of this paper is specific to Dalvik, and therefore of limited current interest to most readers. The authors are, of course, aware of this problem and, in a final paragraph, propose a follow-up study of the ART GC. I look forward to reading that future paper. Online Computing Reviews Service

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
SYSTOR '15: Proceedings of the 8th ACM International Systems and Storage Conference
May 2015
183 pages
ISBN:9781450336079
DOI:10.1145/2757667
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 26 May 2015

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Android
  2. energy
  3. mobile
  4. power
  5. smartphones

Qualifiers

  • Research-article

Funding Sources

Conference

SYSTOR 2015
Sponsor:

Acceptance Rates

Overall Acceptance Rate 108 of 323 submissions, 33%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)15
  • Downloads (Last 6 weeks)2
Reflects downloads up to 15 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2024)VESTA: Power Modeling with Language Runtime EventsProceedings of the ACM on Programming Languages10.1145/36564028:PLDI(621-646)Online publication date: 20-Jun-2024
  • (2024)Memory Management on Mobile DevicesProceedings of the 2024 ACM SIGPLAN International Symposium on Memory Management10.1145/3652024.3665510(15-29)Online publication date: 20-Jun-2024
  • (2023)Vincent: Green hot methods in the JVMScience of Computer Programming10.1016/j.scico.2023.102962230(102962)Online publication date: Aug-2023
  • (2022)A Survey of Performance Optimization for Mobile ApplicationsIEEE Transactions on Software Engineering10.1109/TSE.2021.307119348:8(2879-2904)Online publication date: 1-Aug-2022
  • (2022)A Hybrid Distributed EA Approach for Energy Optimisation on SmartphonesEmpirical Software Engineering10.1007/s10664-022-10188-527:6Online publication date: 1-Nov-2022
  • (2020)Coastal Marine Data Crowdsourcing Using the Internet of Floating Things: Improving the Results of a Water Quality ModelIEEE Access10.1109/ACCESS.2020.29967788(101209-101223)Online publication date: 2020
  • (2020)Benchmarking Pocket-Scale DatabasesPerformance Evaluation and Benchmarking for the Era of Cloud(s)10.1007/978-3-030-55024-0_7(99-115)Online publication date: 30-Jul-2020
  • (2018)In-vivo and offline optimisation of energy use in the presence of small energy signalsProceedings of the 15th EAI International Conference on Mobile and Ubiquitous Systems: Computing, Networking and Services10.1145/3286978.3287014(207-215)Online publication date: 5-Nov-2018
  • (2018)DYNAMO: Distributed Leisure Yacht-Carried Sensor-Network for Atmosphere and Marine Data Crowdsourcing Applications2018 IEEE International Conference on Cloud Engineering (IC2E)10.1109/IC2E.2018.00064(333-339)Online publication date: Apr-2018
  • (2017)Enhancing the performance of android applications on multi-core processors by selecting parallel configurations for source codes2017 4th NAFOSTED Conference on Information and Computer Science10.1109/NAFOSTED.2017.8108068(225-229)Online publication date: Nov-2017

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media