Estimating the impact of heap liveness information on space consumption in Java

Ran Shaham, Elliot K. Kolodner, Mooly Sagiv

Research output: Contribution to conferencePaperpeer-review

Abstract

We study the potential impact of different kinds of liveness information on the space consumption of a program in a garbage collected environment, specifically for Java. The idea is to measure the time difference between the actual time an object is collected by the garbage collector (GC) and the potential earliest time an object could be collected assuming liveness information were available. We focus on the following kinds of liveness information: (i) stack reference liveness (local reference variable liveness in Java), (ii) global reference liveness (static reference variable liveness in Java), (iii) heap reference liveness (instance reference variable liveness or array reference liveness in Java), and (vi) any combination of (i)-(iii). We also provide some insights on the kind of interface between a compiler and GC that could achieve these potential savings. The Java Virtual Machine (JVM) was instrumented to measure (dynamic) liveness information. Experimental results are given for 10 benchmarks, including 5 of the SPEC-jvm98 benchmark suite. We show that in general stack reference liveness may yield small benefits, global reference liveness combined with stack reference liveness may yield medium benefits, and heap reference liveness yields the largest potential benefit. Specifically, for heap reference liveness we measure an average potential savings of 39% using an interface with complete liveness information, and an average savings of 15% using a more restricted interface.

Original languageEnglish
Pages64-75
Number of pages12
DOIs
StatePublished - 2002
EventISMM 2002: The 2002 International Symposium on Memory Management - Berlin, Germany
Duration: 20 Jun 200221 Jun 2002

Conference

ConferenceISMM 2002: The 2002 International Symposium on Memory Management
Country/TerritoryGermany
CityBerlin
Period20/06/0221/06/02

Keywords

  • Compilers
  • Garbage collection
  • Java
  • Liveness analysis
  • Memory management
  • Program analysis

Fingerprint

Dive into the research topics of 'Estimating the impact of heap liveness information on space consumption in Java'. Together they form a unique fingerprint.

Cite this