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

  • Software
  • Computer Graphics and Computer-Aided Design

Cite this