2006
DOI: 10.1145/1133255.1134021
|View full text |Cite
|
Sign up to set email alerts
|

Profile-guided proactive garbage collection for locality optimization

Abstract: Many applications written in garbage collected languages have large dynamic working sets and poor data locality. We present a new system for continuously improving program data locality at run time with low overhead. Our system proactively reorganizes the heap by leveraging the garbage collector and uses profile information collected through a low-overhead mechanism to guide the reorganization at run time. The key contributions include making a case that garbage collection should be viewed as a proactive techn… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
5
0

Year Published

2008
2008
2021
2021

Publication Types

Select...
5
4

Relationship

0
9

Authors

Journals

citations
Cited by 12 publications
(5 citation statements)
references
References 18 publications
0
5
0
Order By: Relevance
“…What profiling mechanism to use is orthogonal to the proposal of PCA. Besides offline profiling, there are many other techniques for efficient online sampling [9,13,20] or cross-run accumulation of samples [24]. They could all be used for PCA construction, depending on the usage scenario.…”
Section: Formal Definition Of Pca and Its Constructionmentioning
confidence: 99%
“…What profiling mechanism to use is orthogonal to the proposal of PCA. Besides offline profiling, there are many other techniques for efficient online sampling [9,13,20] or cross-run accumulation of samples [24]. They could all be used for PCA construction, depending on the usage scenario.…”
Section: Formal Definition Of Pca and Its Constructionmentioning
confidence: 99%
“…Object placement optimization has a rich history of research and many software-based techniques have been proposed. These techniques use a variety of types of static and dynamic information that can be obtained without special hardware, such as field access profiles at read barriers [7,8,9], object lifetimes [10], allocation frequencies for each Java class [11], hints provided by the STL container libraries [12], or static access patterns analyzed at the compilation time [13]. Our heuristic approach is unique in the sense that we try to detect objects and fields that cause many cache misses, not just those that are frequently accessed.…”
Section: Related Workmentioning
confidence: 99%
“…Finally, runtime behavior analysis [4, 8,24,31,46] in dynamic optimizers (e.g., the runtime systems of Java and C#), overcomes the limitations of static and profiling techniques by sampling and analyzing program executions on the fly. It has good adaptivity-being able to adapt to the changes in running environments and program inputs.…”
Section: Implications To Program Optimizationsmentioning
confidence: 99%
“…Some of them exploit runtime invariants through programmers' annotations or other efforts; examples include 'C from Kaashoek's group [32], Tempo from Consel's group [29], and DyC from Chambers and Eggers' group [15]. Others monitor execution through runtime profiling to optimize a program; examples include the dynamic feedback work by Diniz and Rinard [12], the continuous program optimizations by Kistler and Franz [22], the ADAPT project by Voss and Eigenmann [41], the CoCo project by Childers, Davidson and Soffa [9], the continuous program optimization (CPO) project by Wisniewski and his colleagues [44], the dynamic optimizations on LLVM [23], the runtime support for managed languages like Java and C# [4,8,24,31,39,46]. These techniques observe runtime behaviors directly, and typically employ reactive optimization scheme.…”
Section: Related Workmentioning
confidence: 99%