[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.5555/1071565.1071581acmotherconferencesArticle/Chapter ViewAbstractPublication PagespppjConference Proceedingsconference-collections
Article

Profile-driven code unloading for resource-constrained JVMs

Published: 16 June 2004 Publication History

Abstract

Java virtual machines (JVMs) have become increasingly popular for execution of a wide range of applications on mobile and embedded devices. Most JVMs for such devices execute programs using interpretation. However, JVMs that use dynamic compilation have been shown to enable significant performance improvements. A disadvantage of a compile-only approach in resource-constrained environments is that it uses more memory than interpretation to store compiled code for reuse.In this paper, we address this limitation with techniques that attempt to automatically unload dead or infrequently used native code to reduce the memory footprint of a compile-only JVM. We describe a number of profile-based strategies that identify unloading candidates. Our empirical evaluation, using a number of common benchmarks, indicates that dynamic code unloading can reduce code size significantly with negligible overhead. When memory is highly constrained, this reduction translates into significant execution time benefits for the benchmarks, JVM, and JVM configuration that we investigated.

References

[1]
B. Alpern, C. R. Attanasio, J. J. Barton, M. G. Burke, P. Cheng, J.-D. Choi, A. Cocchi, S. J. Fink, D. Grove, M. Hind, S. F. Hummel, D. Lieber, V. Litvinov, M. F. Mergen, T. Ngo, J. R. Russell, V. Sarkar, M. J. Serrano, J. C. Shepherd, S. E. Smith, V. C. Sreedhar, H. Srinivasan, and J. Whaley. The Jalapeño Virtual Machine. IBM Systems Journal, 39(1):211--221, 2000.
[2]
V. Bala, E. Duesterwald, and S. Banerjia. Dynamo: a transparent dynamic optimization system. ACM SIGPLAN Notices, 35(5):1--12, 2000.
[3]
G. Bracha, J. Gosling, B. Joy, and G. Steel. The Java Language Specification. Addison Wesley, second edition, June 2000.
[4]
D. Bruening and E. Duesterwald. Exploring Optimal Compilation Unit Shapes for an Embedded Just-In-Time Compiler. In Proceeding of the 2000 ACM Workshop on Feedback-directed and Dynamic Optimization FDDO-3, December 2000.
[5]
M. Cierniak, G. Lueh, and J. Stichnoth. Practicing JUDO: Java Under Dynamic Optimizations. In Proceedings of ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 13--26, June 2000.
[6]
Hewlett-Packard Company. ChaiVM. http://www.chai.hp.com.
[7]
K. Ebcioglu, E. R. Altman, M. Gschwind, and S. W. Sathaye. Dynamic binary translation and optimization. IEEE Transactions on Computers, 50(6):529--548, 2001.
[8]
K. I. Farkas, J. Flinn, G. Back, D. Grunwald, and J. M. Anderson. Quantifying the energy consumption of a pocket computer and a Java virtual machine. In Proceedings of ACM International Conference on Measurement and Modeling of Computer Systems, June 2000.
[9]
S. J. Fink and F. Qian. Design, implementation and evaluation of adaptive recompilation with on-stack replacement. In 1th Annual International Symposium on Code Generation and Optimization, pages 241--252, March 2003.
[10]
The Java HotSpot Virtual Machine, Technical White Paper. http://java.sun.com/products/hotspot/docs/whitepaper/Java_HotSpot_WP_Final_%4_30_01.ps.
[11]
IBM Jikes Research Virtual Machine (JikesRVM). http://www-124.ibm.com/ developerworks/oss/jikesrvm.
[12]
Kaffe - An opensource Java virtual machine. http://www.transvirtual.com/kaffe.htm.
[13]
C. Krintz, D. Grove, V. Sarkar, and B. Calder. Reducing the Overhead of Dynamic Compilation. Software-Practice and Experience, 31(8):717--738, 2001.
[14]
Latte - a jit compiler for java. http://latte.snu.ac.kr/publications/.
[15]
T. Lindholm and F. Yellin. The Java Virtual Machine Specification. Addison Wesley, second edition, April 1999.
[16]
SpecJVM'98 Benchmarks. http://www.spec. org/osg/jvm98.
[17]
D. Stutz, T. Neward, and G. Dhilling. Shared Source CLI Essentials, page 251. O'Reilly Associates, Inc., March 2003.
[18]
T. Suganuma, T. Ogasawara, M. Takeuchi, T. Yasue, M. Kawahito, K. Ishizaki, H. Komatsu, and T. Nakatani. Overview of the IBM Java Just-in-Time Compiler. IBM Systems Journal, 39(1):175--193, 2000.
[19]
Inc. Sun Microsystems. White paper: Java(TM) 2 Platform Micro Edition(J2ME(TM)) Technology for Creating Mobile Devices, May 2000. http://java.sun.com/products/cldc/wp/KVMwp.pdf.
[20]
D. Takahashi. Java chips make a comeback. Red Herring, July 2001.
[21]
N. Vijaykrishnan, M. Kandemir, S. Tomar, S. Kim, A. Sivasubramaniam, and M. J. Irwin. Energy Characterization of Java Applications from a Memory Perspective. In USENIX Java Virtual Machine Research and Technology Symposium (JVM'01), April 2001.
[22]
J. Whaley. Partial Method Compilation using Dynamic Profile Information. In Proceeding of ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages and Applications, OOPSLA, pages 166--179. ACM Press, October 2001.

Cited By

View all
  • (2019)CslimProceedings of the 20th International Conference on Distributed Computing and Networking10.1145/3288599.3296013(421-426)Online publication date: 4-Jan-2019
  • (2018)PAYJIT: space-optimal JIT compilation and its practical implementationProceedings of the 27th International Conference on Compiler Construction10.1145/3178372.3179523(71-81)Online publication date: 24-Feb-2018
  • (2016)Code cache management in managed language VMs to reduce memory consumption for embedded systemsACM SIGPLAN Notices10.1145/2980930.290795851:5(11-20)Online publication date: 13-Jun-2016
  • Show More Cited By

Index Terms

  1. Profile-driven code unloading for resource-constrained JVMs
        Index terms have been assigned to the content through auto-classification.

        Recommendations

        Comments

        Please enable JavaScript to view thecomments powered by Disqus.

        Information & Contributors

        Information

        Published In

        cover image ACM Other conferences
        PPPJ '04: Proceedings of the 3rd international symposium on Principles and practice of programming in Java
        June 2004
        166 pages
        ISBN:1595931716

        Publisher

        Trinity College Dublin

        Publication History

        Published: 16 June 2004

        Check for updates

        Qualifiers

        • Article

        Conference

        PPPJ04

        Acceptance Rates

        Overall Acceptance Rate 29 of 58 submissions, 50%

        Contributors

        Other Metrics

        Bibliometrics & Citations

        Bibliometrics

        Article Metrics

        • Downloads (Last 12 months)1
        • Downloads (Last 6 weeks)0
        Reflects downloads up to 13 Dec 2024

        Other Metrics

        Citations

        Cited By

        View all
        • (2019)CslimProceedings of the 20th International Conference on Distributed Computing and Networking10.1145/3288599.3296013(421-426)Online publication date: 4-Jan-2019
        • (2018)PAYJIT: space-optimal JIT compilation and its practical implementationProceedings of the 27th International Conference on Compiler Construction10.1145/3178372.3179523(71-81)Online publication date: 24-Feb-2018
        • (2016)Code cache management in managed language VMs to reduce memory consumption for embedded systemsACM SIGPLAN Notices10.1145/2980930.290795851:5(11-20)Online publication date: 13-Jun-2016
        • (2016)Code cache management in managed language VMs to reduce memory consumption for embedded systemsProceedings of the 17th ACM SIGPLAN/SIGBED Conference on Languages, Compilers, Tools, and Theory for Embedded Systems10.1145/2907950.2907958(11-20)Online publication date: 13-Jun-2016
        • (2012)SwiftACM SIGPLAN Notices10.1145/2365864.215103547:7(63-74)Online publication date: 3-Mar-2012
        • (2012)SwiftProceedings of the 8th ACM SIGPLAN/SIGOPS conference on Virtual Execution Environments10.1145/2151024.2151035(63-74)Online publication date: 3-Mar-2012
        • (2011)Process-level virtualization for runtime adaptation of embedded softwareProceedings of the 48th Design Automation Conference10.1145/2024724.2024924(895-900)Online publication date: 5-Jun-2011
        • (2010)Profile-driven selective program loadingProceedings of the 16th international Euro-Par conference on Parallel processing: Part I10.5555/1887695.1887703(62-73)Online publication date: 31-Aug-2010
        • (2010)A self-adjusting code cache manager to balance start-up time and memory usageProceedings of the 8th annual IEEE/ACM international symposium on Code generation and optimization10.1145/1772954.1772968(82-91)Online publication date: 24-Apr-2010

        View Options

        Login options

        View options

        PDF

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader

        Media

        Figures

        Other

        Tables

        Share

        Share

        Share this Publication link

        Share on social media