1998
DOI: 10.1145/277652.277718
|View full text |Cite
|
Sign up to set email alerts
|

Generational stack collection and profile-driven pretenuring

Abstract: This paper presents two techniques for improving garbage collection performance: generational stack collection and profile-driven pretenuring. The first is applicable to stack-based implementations of functional languages while the second is useful for any generational collector. We have implemented both techniques in a generational collector used by the TIL compiler (Tarditi, Morrisett, Cheng, Stone, Harper, and Lee 1996), and have observed decreases in garbage collection times of as much as 70% and 30%, resp… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
1
1

Citation Types

0
20
0

Year Published

2000
2000
2012
2012

Publication Types

Select...
4
1
1

Relationship

1
5

Authors

Journals

citations
Cited by 21 publications
(20 citation statements)
references
References 16 publications
0
20
0
Order By: Relevance
“…Another approach to lifetime classification for heap optimizations is static profiling [4,7,8,13,18,19,23,24]. For instance, a static profiler finds allocation sites for long-lived objects in a generational collector and recompiles the program to allocate these directly to mature generations [7,8,23,24].…”
Section: Related Workmentioning
confidence: 99%
“…Another approach to lifetime classification for heap optimizations is static profiling [4,7,8,13,18,19,23,24]. For instance, a static profiler finds allocation sites for long-lived objects in a generational collector and recompiles the program to allocate these directly to mature generations [7,8,23,24].…”
Section: Related Workmentioning
confidence: 99%
“…[26][27][28][29]). Hirzel et al studied a suite of benchmarks and concluded that object connectivity correlates strongly with object lifetime [30].…”
Section: Profilingmentioning
confidence: 99%
“…Incremental schemes could be used to eliminate repeated scans of a stack [10], and a thread does not need to be scanned more than once while it is suspended. Some "GC crosstalk" between processes is still possible, because a process could create many threads in an effort to get the system to scan them all.…”
Section: Process Separationmentioning
confidence: 99%