Generational stack collection and profile-driven pretenuring

作者: Perry Cheng , Robert Harper , Peter Lee

DOI: 10.1145/277650.277718

关键词:

摘要: This paper presents two techniques for improving garbage collection performance: generational stack and profile-driven pretenuring. The first is applicable to stack-based implementations of functional languages while the second useful any collector. We have implemented both in a collector used by TIL compiler (Tarditi, Morrisett, Cheng, Stone, Harper, Lee 1996), observed decreases times as much 70% 30%, respectively.Functional encourage use recursion which can lead long chain activation records. When occurs, these records must be scanned roots. show that scanning many take so become dominant cost collection. However, most deep stacks unwind very infrequently, root information obtained from remains unchanged across successive collections. Generational greatly reduces scan reusing previous scans.Generational been successful reducing (Ungar 1984). Various complex heap arrangements tenuring policies proposed increase effectiveness frequency copying. In contrast, we using profile make lifetime predictions, pretenuring avoid copying data altogether. essence, this technique uses refinement hypothesis (most die young) with locality principle concerning age data: allocations sites produce immediately dies, few allocation consistently survives

参考文章(27)
Olin Grigsby Shivers, Control-flow analysis of higher-order languages of taming lambda Carnegie Mellon University. ,(1991)
Paul R. Wilson, Uniprocessor garbage collection techniques Memory Management. pp. 1- 42 ,(1992) , 10.1007/BFB0017182
Benjamin Goth Zorn, Comparative performance evaluation of garbage collection algorithms University of California, Berkeley. ,(1989)
Manuel Fahndrich, Alex Aiken, Raph Levien, Better Static Memory Management: Improving Region-Based University of California at Berkeley. ,(1995)
Robert Allen Shaw, Empirical analysis of a LISP system Stanford University. ,(1988)
Andrew W. Appel, Compiling with continuations ,(1992)
Rafael Lins, Richard Jones, Garbage collection: algorithms for automatic dynamic memory management John Wiley & Sons, Inc.. ,(1996)
Mads Tofte, Mads Tofte, Robert Harper, Robin Milner, The Definition of Standard ML ,(1990)
Robert R. Fenichel, Jerome C. Yochelson, A LISP garbage-collector for virtual-memory computer systems Communications of The ACM. ,vol. 12, pp. 611- 612 ,(1969) , 10.1145/363269.363280
Lars Birkedal, Mads Tofte, Magnus Vejlstrup, From region inference to von Neumann machines via region representation inference symposium on principles of programming languages. pp. 171- 183 ,(1996) , 10.1145/237721.237771