Recommending Energy-Efficient Java Collections
Over the last years, increasing attention has been given to creating energy-efficient software systems. However, developers still lack the knowledge and the tools to support them in that task. In this work, we explore our vision that energy consumption non-specialists can build software that consumes less energy by alternating, at development time, between third-party, readily available, diversely-designed pieces of software, without increasing the development complexity. To support our vision, we propose an approach for energy-aware development that combines the construction of application-independent energy profiles of Java collections and static analysis to produce an estimate of in which ways and how intensively a system employs these collections. By combining these two pieces of information, it is possible to produce energy-saving recommendations for alternative collection implementations to be used in different parts of the system. We implement this approach in a tool named CT+ that works with both desktop and mobile Java systems, and is capable of analyzing 40 different collection implementations of lists, maps, and sets. We applied CT+ to twelve software systems: two mobile-based, seven desktop-based, and three that can run in both environments. Our evaluation infrastructure involved a high-end server, a notebook, and three mobile devices. When applying the (mostly trivial) recommendations, we achieved up to 17.34% reduction in energy consumption just by replacing collection implementations. Even for a real world, mature, highly-optimized system such as Xalan, CT+ could achieve a 5.81% reduction in energy consumption. Our results indicate that some widely used collections, e.g., ArrayList, HashMap, and HashTable, are not energy-efficient and sometimes should be avoided when energy consumption is a major concern.
Sun 26 May Times are displayed in time zone: Eastern Time (US & Canada) change
14:45 - 15:30: Session VI: Energy and EconomicsMSR 2019 Paper Presentations / MSR 2019 Data Showcase / MSR 2019 Technical Papers at Centre-Ville Chair(s): Maleknaz NayebiPolytechnique Montréal | |||
14:45 - 15:00 Full-paper | Recommending Energy-Efficient Java Collections MSR 2019 Technical Papers Wellington de Oliveira Júnior, Renato Santos, Fernando CastorFederal University of Pernambuco (UFPE), José Benito Fernandes De Araújo Neto, Gustavo PintoUFPA Pre-print | ||
15:01 - 15:07 Talk | GreenHub Farmer: Real-world data for Android Energy Mining MSR 2019 Data Showcase Rui PereiraHASLab/INESC TEC & Universidade do Minho & Universidade da Beira Interior, Marco CoutoHASLab/INESC TEC & Universidade do Minho, João Paulo FernandesRelease/LISP, CISUC, Bruno Cabral, Hugo MatalongaUniversity of Minho, Simão Melo de Sousa, Fernando CastorFederal University of Pernambuco (UFPE) Pre-print | ||
15:08 - 15:14 Talk | GreenSource: a large-scale collection of Android code, tests and energy metrics MSR 2019 Data Showcase Rui RuaHASLab/INESC TEC & Universidade do Minho, Marco CoutoHASLab/INESC TEC & Universidade do Minho, João SaraivaUniversity of Minho, Portugal | ||
15:15 - 15:21 Short-paper | Striking Gold in Software Repositories? An Econometric Study of Cryptocurrencies on GitHub MSR 2019 Technical Papers Asher TrockmanUniversity of Evansville, Rijnard van TonderCarnegie Mellon University, Bogdan VasilescuCarnegie Mellon University Pre-print | ||
15:22 - 15:28 Talk | Panel Data of Cryptocurrency Development Activity on GitHub MSR 2019 Data Showcase Rijnard van TonderCarnegie Mellon University, Asher TrockmanUniversity of Evansville, Claire Le GouesCarnegie Mellon University |