On the prediction of Java object lifetimes

Hajime Inoue, Darko Stefanovic, Stephanie Forrest

Research output: Contribution to journalArticle

17 Citations (Scopus)

Abstract

Accurately predicting object lifetimes is important for improving memory management systems. Current garbage collectors make relatively coarse-grained predictions (e.g., "short-lived" versus "long-lived") and rely on application-independent heuristics related to the local characteristics of an allocation. This paper introduces a prediction method which is fully precise and makes its predictions based on application-specific training rather than application-independent heuristics. By "fully precise" we mean that the granularity of predictions is equal to the smallest unit of allocation. The method described here is the first to combine high precision and efficiency in a single lifetime predictor. Fully precise prediction enables us, for the first time, to study zero-lifetime objects. The paper reports results showing that zero-lifetime objects comprise a significant fraction of object allocations in benchmark programs for the Java programming language and that they are correlated with their allocation context (the call stack and allocation site). Beyond zero-lifetime objects, the paper reports results on predicting longer lived objects, where, in some cases, it is possible to predict the lifetime of objects based on their allocation context (the call stack and allocation site) well. For the SPEC benchmark programs, the number of dynamically allocated objects whose call sites have accurate predictors ranges from 0.2 percent to 61 percent. This method could potentially improve the performance of garbage collectors. The paper proposes a death-ordered collector (DOC) and analyzes its implementation overheads and its best possible performance. The study shows how memory performance could be enhanced using the extra information provided by fully precise prediction.

Original languageEnglish (US)
Pages (from-to)880-892
Number of pages13
JournalIEEE Transactions on Computers
Volume55
Issue number7
DOIs
StatePublished - Jul 1 2006
Externally publishedYes

Fingerprint

Java
Lifetime
Prediction
Java programming language
Percent
Data storage equipment
Predictors
Zero
Heuristics
Benchmark
Memory Management
Object
Granularity
Programming Languages
Predict
Unit
Range of data

Keywords

  • Garbage collection
  • Object lifetimes
  • Object-oriented programming languages
  • Pretenuring
  • Program behavior
  • Workload characterization

ASJC Scopus subject areas

  • Software
  • Theoretical Computer Science
  • Hardware and Architecture
  • Computational Theory and Mathematics

Cite this

On the prediction of Java object lifetimes. / Inoue, Hajime; Stefanovic, Darko; Forrest, Stephanie.

In: IEEE Transactions on Computers, Vol. 55, No. 7, 01.07.2006, p. 880-892.

Research output: Contribution to journalArticle

Inoue, Hajime ; Stefanovic, Darko ; Forrest, Stephanie. / On the prediction of Java object lifetimes. In: IEEE Transactions on Computers. 2006 ; Vol. 55, No. 7. pp. 880-892.
@article{73966b8a43aa4de4a3f234d99bc04c42,
title = "On the prediction of Java object lifetimes",
abstract = "Accurately predicting object lifetimes is important for improving memory management systems. Current garbage collectors make relatively coarse-grained predictions (e.g., {"}short-lived{"} versus {"}long-lived{"}) and rely on application-independent heuristics related to the local characteristics of an allocation. This paper introduces a prediction method which is fully precise and makes its predictions based on application-specific training rather than application-independent heuristics. By {"}fully precise{"} we mean that the granularity of predictions is equal to the smallest unit of allocation. The method described here is the first to combine high precision and efficiency in a single lifetime predictor. Fully precise prediction enables us, for the first time, to study zero-lifetime objects. The paper reports results showing that zero-lifetime objects comprise a significant fraction of object allocations in benchmark programs for the Java programming language and that they are correlated with their allocation context (the call stack and allocation site). Beyond zero-lifetime objects, the paper reports results on predicting longer lived objects, where, in some cases, it is possible to predict the lifetime of objects based on their allocation context (the call stack and allocation site) well. For the SPEC benchmark programs, the number of dynamically allocated objects whose call sites have accurate predictors ranges from 0.2 percent to 61 percent. This method could potentially improve the performance of garbage collectors. The paper proposes a death-ordered collector (DOC) and analyzes its implementation overheads and its best possible performance. The study shows how memory performance could be enhanced using the extra information provided by fully precise prediction.",
keywords = "Garbage collection, Object lifetimes, Object-oriented programming languages, Pretenuring, Program behavior, Workload characterization",
author = "Hajime Inoue and Darko Stefanovic and Stephanie Forrest",
year = "2006",
month = "7",
day = "1",
doi = "10.1109/TC.2006.107",
language = "English (US)",
volume = "55",
pages = "880--892",
journal = "IEEE Transactions on Computers",
issn = "0018-9340",
publisher = "IEEE Computer Society",
number = "7",

}

TY - JOUR

T1 - On the prediction of Java object lifetimes

AU - Inoue, Hajime

AU - Stefanovic, Darko

AU - Forrest, Stephanie

PY - 2006/7/1

Y1 - 2006/7/1

N2 - Accurately predicting object lifetimes is important for improving memory management systems. Current garbage collectors make relatively coarse-grained predictions (e.g., "short-lived" versus "long-lived") and rely on application-independent heuristics related to the local characteristics of an allocation. This paper introduces a prediction method which is fully precise and makes its predictions based on application-specific training rather than application-independent heuristics. By "fully precise" we mean that the granularity of predictions is equal to the smallest unit of allocation. The method described here is the first to combine high precision and efficiency in a single lifetime predictor. Fully precise prediction enables us, for the first time, to study zero-lifetime objects. The paper reports results showing that zero-lifetime objects comprise a significant fraction of object allocations in benchmark programs for the Java programming language and that they are correlated with their allocation context (the call stack and allocation site). Beyond zero-lifetime objects, the paper reports results on predicting longer lived objects, where, in some cases, it is possible to predict the lifetime of objects based on their allocation context (the call stack and allocation site) well. For the SPEC benchmark programs, the number of dynamically allocated objects whose call sites have accurate predictors ranges from 0.2 percent to 61 percent. This method could potentially improve the performance of garbage collectors. The paper proposes a death-ordered collector (DOC) and analyzes its implementation overheads and its best possible performance. The study shows how memory performance could be enhanced using the extra information provided by fully precise prediction.

AB - Accurately predicting object lifetimes is important for improving memory management systems. Current garbage collectors make relatively coarse-grained predictions (e.g., "short-lived" versus "long-lived") and rely on application-independent heuristics related to the local characteristics of an allocation. This paper introduces a prediction method which is fully precise and makes its predictions based on application-specific training rather than application-independent heuristics. By "fully precise" we mean that the granularity of predictions is equal to the smallest unit of allocation. The method described here is the first to combine high precision and efficiency in a single lifetime predictor. Fully precise prediction enables us, for the first time, to study zero-lifetime objects. The paper reports results showing that zero-lifetime objects comprise a significant fraction of object allocations in benchmark programs for the Java programming language and that they are correlated with their allocation context (the call stack and allocation site). Beyond zero-lifetime objects, the paper reports results on predicting longer lived objects, where, in some cases, it is possible to predict the lifetime of objects based on their allocation context (the call stack and allocation site) well. For the SPEC benchmark programs, the number of dynamically allocated objects whose call sites have accurate predictors ranges from 0.2 percent to 61 percent. This method could potentially improve the performance of garbage collectors. The paper proposes a death-ordered collector (DOC) and analyzes its implementation overheads and its best possible performance. The study shows how memory performance could be enhanced using the extra information provided by fully precise prediction.

KW - Garbage collection

KW - Object lifetimes

KW - Object-oriented programming languages

KW - Pretenuring

KW - Program behavior

KW - Workload characterization

UR - http://www.scopus.com/inward/record.url?scp=33744785724&partnerID=8YFLogxK

UR - http://www.scopus.com/inward/citedby.url?scp=33744785724&partnerID=8YFLogxK

U2 - 10.1109/TC.2006.107

DO - 10.1109/TC.2006.107

M3 - Article

AN - SCOPUS:33744785724

VL - 55

SP - 880

EP - 892

JO - IEEE Transactions on Computers

JF - IEEE Transactions on Computers

SN - 0018-9340

IS - 7

ER -