Reference escape analysis

Optimizing reference counting based on the lifetime of references

Young Gil Park, Benjamin Goldberg

Research output: Contribution to journalArticle

Abstract

In reference counting schemes for automatically reclaiming storage, each time a reference to an object is created or destroyed, the reference count of the object needs to be updated. This may involve expensive inter-processor message exchanges in distributed environments. This overhead can be reduced by analyzing the lifetimes of references to avoid unnecessary updatings. This paper describes a technique for reducing the runtime reference counting overhead through compile-time optimization. We present a compile-time analysis called re~- erence escape analysis for higher-order functional languages that determines whether the lifetime of a reference ezceeds the lifetime of the environment in which the reference was created. Using this statically inferred information, a method for optimizing reference counting schemes is described. Our method can be applied to reference counting schemes in both uniprocessor and multiprocessor environments.

Original languageEnglish (US)
Pages (from-to)178-189
Number of pages12
JournalACM SIGPLAN Notices
Volume26
Issue number9
DOIs
StatePublished - Jan 5 1991

ASJC Scopus subject areas

  • Computer Science(all)

Cite this

Reference escape analysis : Optimizing reference counting based on the lifetime of references. / Park, Young Gil; Goldberg, Benjamin.

In: ACM SIGPLAN Notices, Vol. 26, No. 9, 05.01.1991, p. 178-189.

Research output: Contribution to journalArticle

@article{cc61d0311a154d07bdf8c25fa3766ba6,
title = "Reference escape analysis: Optimizing reference counting based on the lifetime of references",
abstract = "In reference counting schemes for automatically reclaiming storage, each time a reference to an object is created or destroyed, the reference count of the object needs to be updated. This may involve expensive inter-processor message exchanges in distributed environments. This overhead can be reduced by analyzing the lifetimes of references to avoid unnecessary updatings. This paper describes a technique for reducing the runtime reference counting overhead through compile-time optimization. We present a compile-time analysis called re~- erence escape analysis for higher-order functional languages that determines whether the lifetime of a reference ezceeds the lifetime of the environment in which the reference was created. Using this statically inferred information, a method for optimizing reference counting schemes is described. Our method can be applied to reference counting schemes in both uniprocessor and multiprocessor environments.",
author = "Park, {Young Gil} and Benjamin Goldberg",
year = "1991",
month = "1",
day = "5",
doi = "10.1145/115866.115883",
language = "English (US)",
volume = "26",
pages = "178--189",
journal = "ACM SIGPLAN Notices",
issn = "1523-2867",
publisher = "Association for Computing Machinery (ACM)",
number = "9",

}

TY - JOUR

T1 - Reference escape analysis

T2 - Optimizing reference counting based on the lifetime of references

AU - Park, Young Gil

AU - Goldberg, Benjamin

PY - 1991/1/5

Y1 - 1991/1/5

N2 - In reference counting schemes for automatically reclaiming storage, each time a reference to an object is created or destroyed, the reference count of the object needs to be updated. This may involve expensive inter-processor message exchanges in distributed environments. This overhead can be reduced by analyzing the lifetimes of references to avoid unnecessary updatings. This paper describes a technique for reducing the runtime reference counting overhead through compile-time optimization. We present a compile-time analysis called re~- erence escape analysis for higher-order functional languages that determines whether the lifetime of a reference ezceeds the lifetime of the environment in which the reference was created. Using this statically inferred information, a method for optimizing reference counting schemes is described. Our method can be applied to reference counting schemes in both uniprocessor and multiprocessor environments.

AB - In reference counting schemes for automatically reclaiming storage, each time a reference to an object is created or destroyed, the reference count of the object needs to be updated. This may involve expensive inter-processor message exchanges in distributed environments. This overhead can be reduced by analyzing the lifetimes of references to avoid unnecessary updatings. This paper describes a technique for reducing the runtime reference counting overhead through compile-time optimization. We present a compile-time analysis called re~- erence escape analysis for higher-order functional languages that determines whether the lifetime of a reference ezceeds the lifetime of the environment in which the reference was created. Using this statically inferred information, a method for optimizing reference counting schemes is described. Our method can be applied to reference counting schemes in both uniprocessor and multiprocessor environments.

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

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

U2 - 10.1145/115866.115883

DO - 10.1145/115866.115883

M3 - Article

VL - 26

SP - 178

EP - 189

JO - ACM SIGPLAN Notices

JF - ACM SIGPLAN Notices

SN - 1523-2867

IS - 9

ER -