Heap space analysis for java bytecode

Elvira Albert, Samir Genaim, Miguel Gómez-Zamalloa

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

34 Scopus citations

Abstract

This article presents a heap space analysis for (sequential) Java bytecode. The analysis generates heap space cost relations which define at compile-time the heap consumption of a program as a function of its data size. These relations can be used to obtain upper bounds on the heap space allocated during the execution of the different methods. In addition, we describe how to refine the cost relations, by relying on escape analysis, in order to take into account the heap space that can be safely deallocated by the garbage collector upon exit from a corresponding method. These refined cost relations are then used to infer upper bounds on the active heap space upon methods return. Example applications for the analysis consider inference of constant heap usage and heap usage proportional to the data size (including polynomial and exponential heap consumption). Our prototype implementation is reported and demonstrated by means of a series of examples which illustrate how the analysis naturally encompasses standard data-structures like lists, trees and arrays with several dimensions written in object-oriented programming style.

Original languageEnglish
Title of host publicationISMM'07
Subtitle of host publicationProceedings of the 2007 International Symposium on Memory Management
Pages105-116
Number of pages12
DOIs
StatePublished - 1 Dec 2007
Externally publishedYes
EventISMM'07: 2007 International Symposium on Memory Management - Montreal, QC, Canada
Duration: 21 Oct 200722 Oct 2007

Publication series

NameInternational Symposium on Memory Management, ISMM

Conference

ConferenceISMM'07: 2007 International Symposium on Memory Management
Country/TerritoryCanada
CityMontreal, QC
Period21/10/0722/10/07

Keywords

  • Heap consumption
  • Heap space analysis
  • Java bytecode
  • Low-level languages

ASJC Scopus subject areas

  • General Engineering

Fingerprint

Dive into the research topics of 'Heap space analysis for java bytecode'. Together they form a unique fingerprint.

Cite this