ACM Home Page
Please provide us with feedback. Feedback
Heap compression for memory-constrained Java environments
Full text PdfPdf (2.14 MB)
Source Conference on Object Oriented Programming Systems Languages and Applications archive
Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications table of contents
Anaheim, California, USA
SESSION: Garbage collection 1 table of contents
Pages: 282 - 301  
Year of Publication: 2003
ISBN:1-58113-712-5
Also published in ...
Authors
G. Chen  The Pennsylvania State University, University Park, PA
M. Kandemir  The Pennsylvania State University, University Park, PA
N. Vijaykrishnan  The Pennsylvania State University, University Park, PA
M. J. Irwin  The Pennsylvania State University, University Park, PA
B. Mathiske  Sun Microsystems, Inc., Mountain View, CA
M. Wolczko  Sun Microsystems, Inc., Mountain View, CA
Sponsors
SIGPLAN: ACM Special Interest Group on Programming Languages
ACM: Association for Computing Machinery
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 10,   Downloads (12 Months): 84,   Citation Count: 18
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/949305.949330
What is a DOI?

ABSTRACT

Java is becoming the main software platform for consumer and embedded devices such as mobile phones, PDAs, TV set-top boxes, and in-vehicle systems. Since many of these systems are memory constrained, it is extremely important to keep the memory footprint of Java applications under control.The goal of this work is to enable the execution of Java applications using a smaller heap footprint than that possible using current embedded JVMs. We propose a set of memory management strategies to reduce heap footprint of embedded Java applications that execute under severe memory constraints. Our first contribution is a new garbage collector, referred to as the Mark-Compact-Compress (MCC) collector, that allows an application to run with a heap smaller than its footprint. An important characteristic of this collector is that it compresses objects when heap compaction is not sufficient for creating space for the current allocation request. In addition to employing compression, we also consider a heap management strategy and associated garbage collector, called MCL (Mark-Compact-Lazy Allocate), based on lazy allocation of object portions. This new collector operates like the conventional Mark-Compact (MC) collector, but takes advantage of the observation that many Java applications create large objects, of which only a small portion is actually used. In addition, we also combine MCC and MCL, and present MCCL (Mark-Compact-Compress-Lazy Al-locate), which outperforms both MCC and MCL.We have implemented these collectors using KVM, and performed extensive experiments using a set of ten embedded Java applications. We have found our new garbage collection strategies to be useful in two main aspects. First, they reduce the minimum heap size necessary to execute an application without out-of-memory exception. Second, our strategies reduce the heap occupancy. That is, at a given time, they reduce the heap memory requirement of the application being executed. We have also conducted experiments with a more aggressive object compression strategy and discussed its main advantages.


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
8/16 meg PalmPilot upgrades - prices. http://www.palmpilotupgrade.com/prices.html.
 
2
Casio: CdmaOne C452CA. http://www.javamobiles.com/casio/c452ca/.
 
3
Connected device configuration (CDC) specification. http://java.sun.com/j2me/.
 
4
Connected limited device configuration (CLDC) specification. http://java.sun.com/j2me/.
 
5
Java2 platform micro edition (J2ME) technology for creating mobile devices (white paper). http://java.sun.com/products/cldc/wp/KVMwp.pdf.
 
6
Mobile information device profile (MIDP) specification. http://java.sun.com/j2me/.
 
7
Palm product - Palm handheld comparison chart. http://www.palm.com/products/family.epl.
 
8
TinyVM. http://tinyvm.sourceforge.net/index.html.
 
9
US mobile devices to 2006: A land of opportunity. Based on an extensive research program conducted by Datamonitor on mobile device markets in the US.
10
 
11
12
13
 
14
15
16
17
 
18
 
19
 
20
 
21
P. A. Franaszek, P. Heidelberger, D. E. Poff, and J. T. Robison. Algorithms and data structures for compressed-memory machines. IBM Journal of Research and Development, 45(2):245--258, Mar. 2001.
22
23
 
24
 
25
M. Kjelso, M. Gooch, , and S. Jones. Performance evaluation of computer architectures with main memory data compression. Elsevier Science, Journal of Systems Architecture, 45:571--590, 1999.
26
 
27
H. Lekatsas and W. Wolf. SAMC: a code compression algorithm for embedded processors. IEEE Transactions on CAD, 18(12):1689-1701, Dec. 1999.
28
 
29
D. Lidsky and J. Rabaey. Low-power design of memory intensive functions case study: Vector quantization. In 1994 IEEE Workshop on VLSI Signal Processing, pages 26--28, La Jolla, CA, USA, Oct. 1994.
 
30
 
31
S. McAteer. Java will be the dominant handset platform. http://www.microjava.com/articles/perspective/zelos.
 
32
33
34
35
 
36
37
38
39
40
 
41
N. Vijaykrishnan, M. Kandemir, S. Kim, S. Tomar, A. Sivasubramaniam, and M. J. Irwin. Energy behavior of Java applications from the memory perspective. In USENIX Java Virtual Machine Research and Technology Symposium (JVM'01), Monterey, CA, USA, Apr. 2001.
 
42
 
43

CITED BY  18

Collaborative Colleagues:
G. Chen: colleagues
M. Kandemir: colleagues
N. Vijaykrishnan: colleagues
M. J. Irwin: colleagues
B. Mathiske: colleagues
M. Wolczko: colleagues