Reference escape analysis: Optimizing reference counting based on the lifetime of references

Young Gil Park, Benjamin Goldberg

Research output: Chapter in Book/Report/Conference proceedingConference contribution

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 reference escape analysis for higher-order functional languages that determines whether the lifetime of a reference exceeds 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)
Title of host publicationProceedings of the ACM SIGPLAN Symposium on Partial Evaluation and Semantics-Based Program Manipulation
PublisherAssociation for Computing Machinery
Pages178-189
Number of pages12
ISBN (Print)0897914333
StatePublished - May 1 1991
Event1991 ACM SIGPLAN Symposium on Partial Evaluation and Semantics-Based Program Manipulation, PEPM 1991 - New Haven, United States
Duration: Jun 17 1991Jun 19 1991

Publication series

NameProceedings of the ACM SIGPLAN Symposium on Partial Evaluation and Semantics-Based Program Manipulation

Other

Other1991 ACM SIGPLAN Symposium on Partial Evaluation and Semantics-Based Program Manipulation, PEPM 1991
Country/TerritoryUnited States
CityNew Haven
Period6/17/916/19/91

ASJC Scopus subject areas

  • Software

Fingerprint

Dive into the research topics of 'Reference escape analysis: Optimizing reference counting based on the lifetime of references'. Together they form a unique fingerprint.

Cite this