2002
DOI: 10.1145/565816.503300
|View full text |Cite
|
Sign up to set email alerts
|

Exploiting prolific types for memory management and optimizations

Abstract: In this paper, we introduce the notion of prolific and non-prolific types, based on the number of instantiated objects of those types. We demonstrate that distinguishing between these types enables a new class of techniques for memory management and data locality, and facilitates the deployment of known techniques. Specifically, we first present a new type-based approach to garbage collection that has similar attributes but lower cost than generational collection. Then we describe the short type pointer techni… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

1
28
0

Year Published

2004
2004
2012
2012

Publication Types

Select...
6
2
1

Relationship

0
9

Authors

Journals

citations
Cited by 24 publications
(29 citation statements)
references
References 45 publications
1
28
0
Order By: Relevance
“…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%
“…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%
“…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%
“…It is an important characteristic of the application behavior. Similar concept is discussed as "prolific types" [15] and a type-based GC is proposed based on it. Yu et al [16] leverage the same property and propose a GC that divides heap space into reuse-space and non-reuse-space, and allocates objects of prolific types into the former where the collection will be triggered more frequently.…”
Section: Blackburn and Mckinleymentioning
confidence: 99%