Monitors and exceptions: how to implement Java efficiently

1998; Wiley; Volume: 10; Issue: 11-13 Linguagem: Inglês

10.1002/(sici)1096-9128(199809/11)10

ISSN

1096-9128

Autores

Andreas Krall, Mark Probst,

Tópico(s)

Distributed and Parallel Computing Systems

Resumo

Concurrency: Practice and ExperienceVolume 10, Issue 11-13 p. 837-850 Research Article Monitors and exceptions: how to implement Java efficiently Andreas Krall, Corresponding Author Andreas Krall Institut für Computersprachen, Technische Universität Wien, Argentinierstraße 8, A-1040 Wien, Austria URL: http://www.complang.tuwien.ac.at/andi/Institut für Computersprachen, Technische Universität Wien, Argentinierstraße 8, A-1040 Wien, AustriaSearch for more papers by this authorMark Probst, Mark Probst Institut für Computersprachen, Technische Universität Wien, Argentinierstraße 8, A-1040 Wien, Austria URL: http:/www.unix.cslab.tuwien.ac.at/˜schani/Search for more papers by this author Andreas Krall, Corresponding Author Andreas Krall Institut für Computersprachen, Technische Universität Wien, Argentinierstraße 8, A-1040 Wien, Austria URL: http://www.complang.tuwien.ac.at/andi/Institut für Computersprachen, Technische Universität Wien, Argentinierstraße 8, A-1040 Wien, AustriaSearch for more papers by this authorMark Probst, Mark Probst Institut für Computersprachen, Technische Universität Wien, Argentinierstraße 8, A-1040 Wien, Austria URL: http:/www.unix.cslab.tuwien.ac.at/˜schani/Search for more papers by this author First published: 24 December 1998 https://doi.org/10.1002/(SICI)1096-9128(199809/11)10:11/13 3.0.CO;2-7Citations: 20 AboutPDF ToolsRequest permissionExport citationAdd to favoritesTrack citation ShareShare Give accessShare full text accessShare full-text accessPlease review our Terms and Conditions of Use and check box below to share full-text version of article.I have read and accept the Wiley Online Library Terms and Conditions of UseShareable LinkUse the link below to share a full-text version of this article with your friends and colleagues. Learn more.Copy URL Share a linkShare onEmailFacebookTwitterLinkedInRedditWechat Abstract Efficient implementation of monitors and exceptions is crucial for the performance of Java. One implementation of threads showed a factor of 30 difference in runtime on some benchmark programs. This paper describes an efficient implementation of monitors for Java as used in the CACAO just-in-time compiler. With this implementation the thread overhead is less than 40% for typical application programs and can be completely eliminated for some applications. This paper also gives the implementation details of the new exception handling scheme in CACAO. The new approach reduces the size of the generated native code by a half and allows null pointers to be checked by hardware. By using these techniques, the CACAO system has become the fastest JavaVM implementation for the Alpha processor. © 1998 John Wiley & Sons, Ltd. References 1 Ken Arnold and James Gosling The Java Programming Language, Addison-Wesley, 1996. Google Scholar 2 Tim Lindholm and Frank Yellin The Java Virtual Machine Specification, Addison-Wesley, 1996. Google Scholar 3 Andreas Krall and Reinhard Grafl ‘CACAO – a 64 bit Java VM just-in-time compiler’, Concurrency: Pract. Exp., 9 (11), 1017–1030 (1997). 10.1002/(SICI)1096-9128(199711)9:11 3.0.CO;2-0 Web of Science®Google Scholar 4 Cheng-Hsueh A. Hsieh, John C. Gyllenhaal and Wen-mei W. Hwu, ‘ Java bytecode to native code translation: The Caffeine prototype and preliminary results’, in 29th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO'29), 1996. Google Scholar 5 William Stallings, Operating Systems, Prentice Hall, 1995. Google Scholar 6 Java threads whitepaper, http://java. sun. com/, 1997. Google Scholar 7 Tim Wilkinson, ‘KAFFE: A free virtual machine to run Java code’, http://www. kaffe. org, 1997. Google Scholar 8 Standard for threads interface to POSIX, IEEE, P1003.1c, 1996. Google Scholar 9 Frank Mueller, ‘ A library implementation of POSIX threads under UNIX’, in Winter USENIX, San Diego, January 1993, pp. 29–41. Google Scholar 10 David Keppel, ‘ Tools and techniques for building fast portable threads packages’, Technical Report UWCSE 93-05-06, University of Washington, 1993. Google Scholar 11 Brian N. Bershad, David D. Redell and John R. Ellis, ‘ Fast mutual exclusion for uniprocessors’, in Annual Symposium on Architectural Support for Programming Languages and Operating Systems, ACM, October 1992, pp. 223–233. Google Scholar 12 Todd A. Proebsting, Gregg Townsend, Patrick Bridges, John H. Hartman, Tim Newsham and Scott A. Watterson, ‘ Toba: Java for applications’, Technical Report, University of Arizona, Tucson, AZ, 1997. Google Scholar 13 Peter Mehlitz, Biss Awt, http://www. biss-net. com/biss-awt. html, 1997. Google Scholar 14 Jigsaw, http://www. w3. org/Jigsaw/, 1997. Google Scholar 15 Don Cameron, Paul Faust, Dmitry Lenkov and Michey Mehta, ‘ A portable implementation of C++ exception handling’, in C++ Technical Conference, USENIX, August 1992, pp. 225–243. Google Scholar 16 E. W. Giering, Frank Mueller and T. P. Baker, ‘ Features of the Gnu Ada runtime library’, in TRI-Ada '94, ACM, 1994, pp. 93–103. Google Scholar 17 Andrew Koenig and Bjarne Stroustrup, ‘Exception handling for C++’, J. Object Oriented Program., 3 (2), 16–33 (1990). Web of Science®Google Scholar Citing Literature Volume10, Issue11-13Special Issue: Java for High‐performance Network ComputingSeptember ‐ November 1998Pages 837-850 ReferencesRelatedInformation

Referência(s)