ACM Home Page
Please provide us with feedback. Feedback
Chameleon: adaptive selection of collections
Full text PdfPdf (715 KB)
Source
Conference on Programming Language Design and Implementation archive
Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation table of contents
Dublin, Ireland
SESSION: Memory management and bloat table of contents
Pages 408-418  
Year of Publication: 2009
ISBN:978-1-60558-392-1
Also published in ...
Authors
Ohad Shacham  Tel Aviv University, Tel Aviv, Israel
Martin Vechev  IBM Research, Hawthorne, NY, USA
Eran Yahav  IBM Research, Hawthorne, NY, USA
Sponsors
SIGPLAN: ACM Special Interest Group on Programming Languages
ACM: Association for Computing Machinery
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 12,   Downloads (12 Months): 109,   Citation Count: 0
Additional Information:

abstract   references   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/1542476.1542522
What is a DOI?

ABSTRACT

Languages such as Java and C#, as well as scripting languages like Python, and Ruby, make extensive use of Collection classes. A collection implementation represents a fixed choice in the dimensions of operation time, space utilization, and synchronization. Using the collection in a manner not consistent with this fixed choice can cause significant performance degradation. In this paper, we present CHAMELEON, a low-overhead automatic tool that assists the programmer in choosing the appropriate collection implementation for her application. During program execution, CHAMELEON computes elaborate trace and heap-based metrics on collection behavior. These metrics are consumed on-thefly by a rules engine which outputs a list of suggested collection adaptation strategies. The tool can apply these corrective strategies automatically or present them to the programmer. We have implemented CHAMELEON on top of a IBM's J9 production JVM, and evaluated it over a small set of benchmarks. We show that for some applications, using CHAMELEON leads to a significant improvement of the memory footprint of the application.


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
Apache collections. http://commons.apache.org/collections/.
 
2
Google collections. http://code.google.com/p/google-collections/.
 
3
Javolution collections. http://javolution.org/.
 
4
Trove collections. http://trove4j.sourceforge.net/.
5
6
7
8
9
10
 
11
CHUNG, I.-H., AND HOLLINGSWORTH, J. K. Runtime selection among different api implementations. Parallel Processing Letters 13, 2 (2003), 123--134.
12
13
14
15
16
 
17
LAGOUDAKIS, M. G., AND LITTMAN, M. L. Learning to select branching rules in the dpll procedure for satisfiability. In SAT (2001).
 
18
19
20
 
21
MITCHELL, N., AND SEVITSKY, G. Leakbot: An automated and lightweight tool for diagnosing memory leaks in large java applications. In ECOOP 2003 -- Object-Oriented Programming, 17th European Conference (2003), vol. 2743 of Lecture Notes in Computer Science, pp. 351--377.
22
23
 
24
 
25
SUTTER, B. D., TIP, F., AND DOLBY, J. Customization of java library classes using type constraints and profile information. In ECOOP 2004 -- Object-Oriented Programming, 18th European Conference, Oslo, Norway, June 14-18, 2004 (2004), vol. 3086 of Lecture Notes in Computer Science, pp. 585--610.
 
26
 
27
28

Collaborative Colleagues:
Ohad Shacham: colleagues
Martin Vechev: colleagues
Eran Yahav: colleagues