Energy behavior of java applications from the memory perspective

  • Authors:
  • N. Vijaykrishnan;M. Kandemir;S. Kim;S. Tomar;A. Sivasubramaniam;M. J. Irwin

  • Affiliations:
  • Dept. of Computer Science and Engg. The Pennsylvania State University, University Park, PA;Dept. of Computer Science and Engg. The Pennsylvania State University, University Park, PA;Dept. of Computer Science and Engg. The Pennsylvania State University, University Park, PA;Dept. of Computer Science and Engg. The Pennsylvania State University, University Park, PA;Dept. of Computer Science and Engg. The Pennsylvania State University, University Park, PA;Dept. of Computer Science and Engg. The Pennsylvania State University, University Park, PA

  • Venue:
  • JVM'01 Proceedings of the 2001 Symposium on JavaTM Virtual Machine Research and Technology Symposium - Volume 1
  • Year:
  • 2001

Quantified Score

Hi-index 0.00

Visualization

Abstract

With the anticipated dramatic growth of computing devices for mobile and embedded environments, energy conscious hardware and software design has taken center-stage together with performance. At the same time, there is an increasing need to provide a portable and seamless software environment for application development and interoperability. This paper takes an important step in the confluence of these two emerging trends, by examining the energy behavior of the memory system in the execution of Java applications. It is crucial to understand and optimize the energy behavior of the memory system since instructions referencing memory can contribute to a large fraction of the energy consumption when executing Java applications. Using an off-the-shelf JVM, a validated memory energy model, and a detailed simulator, this paper presents a characterization of the energy consumption by the cache and main memory when executing the SPEC JVM98 benchmarks in the JIT and interpreter modes. The energy consumption is profiled for the different hard-ware components (instruction cache, data cache, memory) and software components (class loading, garbage collection, dynamic compilation). The results from such a characterization are useful to the hardware designer for cache organizations and architectural enhancements for reducing energy consumption. They are also useful to the application and runtime system designer to identify energy bottlenecks, and for code restructuring or algorithm redesign to alleviate these bottlenecks.