Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/1346256.1346264acmconferencesArticle/Chapter ViewAbstractPublication PagesveeConference Proceedingsconference-collections
research-article

A method specialisation and virtualised execution environment for Java

Published: 05 March 2008 Publication History

Abstract

We present a virtualisation and method specialisation framework for Java that facilitates efficient, dynamic modification of the behaviour of object accesses at run time. The technique works by virtualising all method calls and field accesses associated with selected classes so that all corresponding object accesses are via the invocation of a virtual method. Different access behaviours are then supported by allowing arbitrary specialisations of those methods to be defined. The virtualisation overheads are partially recovered by allowing the JVM's optimisation subsystem to perform guarded inlining of specialised methods. We describe an implementation based on the Jikes RVM and show how the framework can be used to implement an 'implicit' readbarrier that supports incremental garbage collection. The performance overhead of full virtualisation, and the performance of the implicit read barrier compared with an existing conventional, explicit barrier, are evaluated using SPEC JVM98 and DaCapo benchmarks. The net virtualisation costs are shown to be remarkably low and the implicit barrier is shown to outperform the explicit barrier substantially in most cases. Other potential applications, including object proxying, caching, and relocation, and instrumentation are also discussed.

References

[1]
Henry G. Baker. List processing in real-time on a serial computer. Communications of the ACM, 21(4):280--94, 1978.
[2]
David F. Bacon and Peter F. Sweeney. Fast static analysis of C++ virtual function calls. In OOPSLA'97 ACM Conference on Object-Oriented Systems, Languages and Applications, ACM SIGPLAN Notices, pages 324--34, San Jose, CA, October 1996. ACM Press.
[3]
David F. Bacon, Stephen J. Fink, and David Grove. Space- and time-efficient implementation of the java object model. In ECOOP '02: Proceedings of the 16th European Conference on Object-Oriented Programming, pages 111--132, London, UK, 2002. Springer-Verlag.
[4]
David F. Bacon, Perry Cheng, and V.T. Rajan. A real-time garbage collector with low overhead and consistent utilization. In Conference Record of the Thirtieth Annual ACM Symposium on Principles of Programming Languages, ACM SIGPLAN Notices, New Orleans, LA, January 2003. ACM Press.
[5]
Stephen M. Blackburn and Tony Hosking. Barriers: Friend or foe? ISMM'04 Proceedings of the Fourth International Symposium on Memory Management, ACM SIGPLAN Notices, Vancouver, October 2004. ACM Press.
[6]
Andrew M. Cheadle, Anthony J. Field, Simon Marlow, Simon L. Peyton-Jones, and R.L. While. Non-stop Haskell. In Proceedings of International Conference on Functional Programming, Montreal, September 2000. ACM Press.
[7]
Andrew M. Cheadle, Anthony J. Field, Simon Marlow, Simon L. Peyton-Jones, and Lyndon While. Exploring the barrier to entry --- incremental generational garbage collection for Haskell. In Proceedings of the Fourth International Symposium on Memory Management, ACM SIGPLAN Notices, Vancouver, October 2004. ACM Press.
[8]
Andrew M. Cheadle, Anthony J. Field, and J. Nyström-Persson. Method Specialisation and Incremental Garbage Collection in Java. Technical Report, Department of Computing, Imperial College, London, May 2007.
[9]
C.J. Cheney, A Non-recursive List Compacting Algorithm, CACM 13(11), pp. 677--8, 1970.
[10]
David Detlefs and Ole Agesen. Inlining of virtual methods. In ECOOP '99: Proceedings of the 13th European Conference on Object-Oriented Programming, pages 258--278, London, UK, 1999. Springer-Verlag.
[11]
Karel Driesen, Urs Hölzle, and Jan Vitek. Message dispatch on pipelined processors. In ECOOP '95: Proceedings of the 9th European Conference on Object-Oriented Programming, pages 253--282, London, UK, 1995. Springer-Verlag.
[12]
David J. Pearce, Matthew Webster, Robert Berry, and Paul H.J. Kelly Profiling with AspectJ. In Software-Practice & Experience Volume 37, Issue 7, pages 747--777, 2007, John Wiley & Sons, Inc.
[13]
Kazuaki Ishizaki, Motohiro Kawahito, Toshiaki Yasue, Hideaki Komatsu, and Toshio Nakatani. A study of devirtualization techniques for a Java Just-In-Time compiler. In OOPSLA '00: Proceedings of the 15th ACM SIGPLAN conference on Object-Oriented Programming, Systems, Languages, and Applications, pages 294--310, New York, NY, USA, 2000. ACM Press.
[14]
Alonso Marquez, Stephen Blackburn, Gavin Mercer, and John N. Zigman. Implementing orthogonally persistent java. In POS-9: Revised Papers from the 9th International Workshop on Persistent Object Systems, pages 247--261, London, UK, 2001. Springer-Verlag.
[15]
Benjamin Zorn. Barrier methods for garbage collection. Technical Report CU-CS-494-90, University of Colorado, Boulder, 1990.
[16]
B. Alpern et al. The Jalapeõ virtual machine. In IBM System Journal Volume 39 Issue 1, pages 211--238, January 2000. IBM Corporation.
[17]
Yariv Aridor, Michael Factor, Avi Teperman. cJVM: A Single System Image of a JVM on a Cluster. In Proceedings of the 1999 International Conference on Parallel Processing, p.4, September 21--24, 1999.
[18]
J.N. Zigman and R. Sankaranarayana. Designing a Distributed JVM on a cluster. In Proceedings of the 17th European Simulation Multiconference, Nottingham, United Kingdom, 2003.
[19]
J.N. Zigman. Bytecode Transformation Tools for Jikes RVM. http://www.wastegate.org/systems.
[20]
The Apache Jakarta Project. The Byte Code Engineering Library http://jakarta.apache.org/bcel
[21]
S.M. Blackburn et al. The DaCapo Benchmarks: Java Benchmarking Development and Analysis. In OOPSLA '06: Proceedings of the 21st annual ACM SIGPLAN conference on Object-Oriented Programing, Systems, Languages, and Applications, Portland, OR, USA, October 2006. ACM Press.

Cited By

View all

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
VEE '08: Proceedings of the fourth ACM SIGPLAN/SIGOPS international conference on Virtual execution environments
March 2008
190 pages
ISBN:9781595937964
DOI:10.1145/1346256
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 05 March 2008

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. incremental garbage collection
  2. language implementation
  3. memory management
  4. method virtualization
  5. read barrier

Qualifiers

  • Research-article

Conference

VEE '08

Acceptance Rates

VEE '08 Paper Acceptance Rate 18 of 57 submissions, 32%;
Overall Acceptance Rate 80 of 235 submissions, 34%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)3
  • Downloads (Last 6 weeks)0
Reflects downloads up to 20 Nov 2024

Other Metrics

Citations

Cited By

View all

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