ACM Home Page
Please provide us with feedback. Feedback
Dynamic object sampling for pretenuring
Full text PdfPdf (189 KB)
Source International Symposium on Memory Management archive
Proceedings of the 4th international symposium on Memory management table of contents
Vancouver, BC, Canada
SESSION: Implementation techniques table of contents
Pages: 152 - 162  
Year of Publication: 2004
ISBN:1-58113-945-4
Authors
Maria Jump  University of Texas at Austin, Austin, TX
Stephen M. Blackburn  Australia National University, Canberra, ACT, Australia
Kathryn S. McKinley  University of Texas at Austin, Austin, TX
Sponsors
ACM: Association for Computing Machinery
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 5,   Downloads (12 Months): 39,   Citation Count: 6
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1029873.1029892
What is a DOI?

ABSTRACT

Many state-of-the-art garbage collectors are generational, collecting the young nursery objects more frequently than old objects. These collectors perform well because young objects tend to die at a higher rate than old ones. However, these collectors do not examine object lifetimes with respect to any particular program or allocation site. This paper introduces low-cost object sampling to dynamically determine lifetimes. The sampler marks an object and records its allocation site every n bytes of allocation. The collector then computes per-site nursery survival rates. Sampling degrades total performance by only 3 on average for sample rates of 256 bytes in jikes, a rate at which overall lifetime accuracy compares well with sampling every object. An adaptive collector can use this information to tune itself. For example, pretenuring decreases nursery collection work by allocating new, but long-lived, objects directly into the mature space. We introduce a dynamic pretenuring mechanism that detects long lived allocation sites and pretenures them, given sufficient samples. To react to phase changes, it occasionally backsamples. As with previous online pretenuring, consistent performance improvements on SPECjvm98 benchmarks are difficult to attain since only two combine sufficient allocation load with high nursery survival. Our pretenuring system consistently improves one of these, javac, by 2% to 9% of total time by decreasing collection time by over a factor of two. Sampling and pretenuring overheads slow down all the others. This paper thus provides an efficient sampling mechanism that accurately predicts lifetimes, but leaves open optimization policies that can exploit this information.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

1
2
 
3
4
5
 
6
7
8
9
 
10
11
12
 
13
D. R. Hanson. Fast allocation and deallocation of memory 161.
14
 
15
W. Huang, . Srisa-an, and J. M. Chang. Dynamic pretenuring schemes for generational garbage collection. In Proceedings for the 2004 IEE International Symposium on Performance Analysis of Systems and Software (ISPASS), pages 133--140, Austin, TX, March 2004.
16
17
18
19
 
20
Standard Performance Evaluation Corporation. SPECjvm98. Documentation, release 1.03 edition, March 1999.
 
21
Standard Performance Evaluation Corporation. SPECjbb2000 (Java Business Benchmark) Documentation, release 1.01 edition, 2001.
22
23
24
25


Collaborative Colleagues:
Maria Jump: colleagues
Stephen M. Blackburn: colleagues
Kathryn S. McKinley: colleagues