Energy Profiles of Java Collections Classes

@article{Hasan2016EnergyPO,
  title={Energy Profiles of Java Collections Classes},
  author={Samir Hasan and Zachary King and Munawar Hafiz and Mohammed Sayagh and Bram Adams and Abram Hindle},
  journal={2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE)},
  year={2016},
  pages={225-236}
}
We created detailed profiles of the energy consumed by common operations done on Java List, Map, and Set abstractions. The results show that the alternative data types for these abstractions differ significantly in terms of energy consumption depending on the operations. For example, an ArrayList consumes less energy than a LinkedList if items are inserted at the middle or at the end, but consumes more energy than a LinkedList if items are inserted at the start of the list. To explain the… 

Figures and Tables from this paper

A Comprehensive Study on the Energy Efficiency of Java’s Thread-Safe Collections
TLDR
An empirical investigation of 16 collection implementations grouped under 3 commonly used forms of collections, finding that using a newer hashtable version can yield a 2.19x energy savings and up to 17% in the real world-benchmarks, when compared to the old associative implementation.
A Comprehensive Study on the Energy Efficiency of Java's Thread-Safe Collections
TLDR
An empirical investigation of 16 collection implementations grouped under 3 commonly used forms of collections, finding that using a newer hashtable version can yield a 2.19x energy savings and up to 17% in the real world-benchmarks, when compared to the old associative implementation.
Helping Developers Write Energy Efficient Haskell through a Data-Structure Evaluation
TLDR
It is concluded that energy consumption is directly proportional to execution time, and DRAM and Package energy consumptions are directly proportional, with the DRAM representing between 15 and 31% of the total energy consumption.
Recommending energy-efficient Java collections
TLDR
This work proposes 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.
Recommending Energy-Efficient Java Collections
TLDR
This work proposes 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.
Empirical Study of Usage and Performance of Java Collections
TLDR
It is found that for almost every scenario and JCF collection type there is an alternative implementation that greatly decreases memory consumption while offering comparable or even better execution time.
CollectionSwitch: a framework for efficient and dynamic collection selection
TLDR
This work presents CollectionSwitch, an application-level framework for efficient collection adaptation which is the first approach which is capable of runtime performance optimization of Java collections with very low overhead.
jStanley: Placing a Green Thumb on Java Collections
TLDR
A tool termed jStanley is presented which automatically finds collections in Java programs that can be replaced by others with a positive impact on the energy consumption as well as on the execution time.
Getting the most from map data structures in Android
A map is a data structure that is commonly used to store data as key–value pairs and retrieve data as keys, values, or key–value pairs. Although Java offers different map implementation classes,
Energy consumption in Java: An early experience
TLDR
This paper evaluates energy consumption of data types, operators, control statements, exception, and object in Java at a granular level to help in standardizing the energy consumption traits of Java which can be leveraged by software developers to generate energy efficient code in future.
...
1
2
3
4
5
...

References

SHOWING 1-10 OF 60 REFERENCES
Chameleon: adaptive selection of collections
TLDR
CHAMELEON is presented, a low-overhead automatic tool that assists the programmer in choosing the appropriate collection implementation for her application and shows that for some applications, using CHAMELEONS leads to a significant improvement of the memory footprint of the application.
The power of system call traces: predicting the software energy consumption impact of changes
TLDR
This work relates software change to energy consumption by tracing the changes in an application's pattern of system call invocations and finds that significant changes to system call profiles often induce significant changes in energy consumption.
Characterizing the Performance and Energy Efficiency of Lock-Free Data Structures
TLDR
A head-to-head comparison of lock-free and locking implementations of three data structures executing a set of highly contentious workloads is given and it is shown that under these workloads, the lock- free variants often perform better and use less energy then their traditional locking implementations.
Initial explorations on design pattern energy usage
  • C. Sahin, F. Cayci, K. Winbladh
  • Computer Science
    2012 First International Workshop on Green and Sustainable Software (GREENS)
  • 2012
TLDR
It is shown how mappings between software design and power consumption profiles can provide software designers and developers with useful information about the power behavior of the software they are developing and help software engineers use this information in designing and developing more energy efficient solutions.
Unit testing of energy consumption of software libraries
TLDR
JalenUnit is introduced, a software framework that infers the energy consumption model of software libraries from execution traces and can be used to diagnose application code for detecting energy bugs, understanding energy distribution, establishing energy profiles and classifications, and comparing software libraries against their energy consumption.
Mining energy-greedy API usage patterns in Android apps: an empirical study
TLDR
This work presents the largest to date quantitative and qualitative empirical investigation into the categories of API calls and usage patterns that—in the context of the Android development framework—exhibit particularly high energy consumption profiles.
Detecting Energy Patterns in Software Development
TLDR
This paper describes several approaches for describing power con- sumption and detecting anomalous energy patterns and describes prediction models to estimate the overall energy consumption based on usage of individual modules for the Windows Phone platform.
Mining questions about software energy consumption
TLDR
This paper presents the first empirical study on understanding the views of application programmers on software energy consumption problems, using StackOverflow as the primary data source and analyzes a carefully curated sample of more than 300 questions and 550 answers.
The design and use of simplePower: a cycle-accurate energy estimation tool
TLDR
This paper uses the use of SimplePower to evaluate the impact of a new selective gated pipeline register optimization, a high-level data transformation and a pow er-conscious post compilation optimization on the datapath, memory and on-chip bus energy, respectively.
Energy Consumption Analysis of Design Patterns
TLDR
This paper analyzes six design patterns and compares the energy being consumed in six C++ code examples and explores the effect of them on energy consumption and performance.
...
1
2
3
4
5
...