TY - GEN
T1 - Heap space analysis for java bytecode
AU - Albert, Elvira
AU - Genaim, Samir
AU - Gómez-Zamalloa, Miguel
PY - 2007/12/1
Y1 - 2007/12/1
N2 - 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.
AB - 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.
KW - Heap consumption
KW - Heap space analysis
KW - Java bytecode
KW - Low-level languages
UR - https://www.scopus.com/pages/publications/42149163410
U2 - 10.1145/1296907.1296922
DO - 10.1145/1296907.1296922
M3 - Conference contribution
AN - SCOPUS:42149163410
SN - 9781595938930
T3 - International Symposium on Memory Management, ISMM
SP - 105
EP - 116
BT - ISMM'07
T2 - ISMM'07: 2007 International Symposium on Memory Management
Y2 - 21 October 2007 through 22 October 2007
ER -