|
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
|
David F. Bacon , Perry Cheng , V. T. Rajan, A real-time garbage collector with low overhead and consistent utilization, Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.285-298, January 15-17, 2003, New Orleans, Louisiana, USA
|
| |
11
|
|
 |
12
|
|
 |
13
|
Stephen M. Blackburn , Sharad Singhai , Matthew Hertz , Kathryn S. McKinely , J. Eliot B. Moss, Pretenuring for Java, Proceedings of the 16th ACM SIGPLAN conference on Object oriented programming, systems, languages, and applications, p.342-352, October 14-18, 2001, Tampa Bay, FL, USA
|
| |
14
|
G. Chen , R. Shetty , M. Kandemir , N. Vijaykrishnan , M. J. Irwin , M. Wolczko, Tuning Garbage Collection in an Embedded Java Environment, Proceedings of the 8th International Symposium on High-Performance Computer Architecture, p.92, February 02-06, 2002
|
 |
15
|
|
 |
16
|
Jong-Deok Choi , Manish Gupta , Mauricio Serrano , Vugranam C. Sreedhar , Sam Midkiff, Escape analysis for Java, Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.1-19, November 01-05, 1999, Denver, Colorado, United States
|
 |
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
|
G. Chen , M. Kandemir , N. Vijaykrishnan , M. J. Irwin , W. Wolf, Energy savings through compression in embedded Java environments, Proceedings of the tenth international symposium on Hardware/software codesign, May 06-08, 2002, Estes Park, Colorado
[doi> 10.1145/774789.774823]
|
 |
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
|
Haris Lekatsas , Jörg Henkel , Wayne Wolf, Code compression for low power embedded system design, Proceedings of the 37th conference on Design automation, p.294-299, June 05-09, 2000, Los Angeles, California, United States
[doi> 10.1145/337292.337423]
|
| |
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
|
Yefim Shuf , Manish Gupta , Rajesh Bordawekar , Jaswinder Pal Singh, Exploiting prolific types for memory management and optimizations, Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.295-306, January 16-18, 2002, Portland, Oregon
|
 |
38
|
Yefim Shuf , Manish Gupta , Hubertus Franke , Andrew Appel , Jaswinder Pal Singh, Creating and preserving locality of java applications at allocation and garbage collection times, Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, November 04-08, 2002, Seattle, Washington, USA
|
 |
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
|
|
|
|
|
|
|
|
Guangyu Chen , Mahmut Kandemir , N. Vijaykrishnan , Mary Janie Irwin, Field level analysis for heap space optimization in embedded java environments, Proceedings of the 4th international symposium on Memory management, October 24-25, 2004, Vancouver, BC, Canada
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Ali-Reza Adl-Tabatabai , Jay Bharadwaj , Michal Cierniak , Marsha Eng , Jesse Fang , Brian T. Lewis , Brian R. Murphy , James M. Stichnoth, Improving 64-Bit Java IPF Performance by Compressing Heap References, Proceedings of the international symposium on Code generation and optimization: feedback-directed and runtime optimization, p.100, March 20-24, 2004, Palo Alto, California
|
|
|
|
|
|
Zhuang Guo , José Nelson Amaral , Duane Szafron , Yang Wang, Utilizing field usage patterns for Java heap space optimization, Proceedings of the 2006 conference of the Center for Advanced Studies on Collaborative research, October 16-19, 2006, Toronto, Ontario, Canada
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|