Artigo Acesso aberto

Annotating the Java bytecodes in support of optimization

1997; Wiley; Volume: 9; Issue: 11 Linguagem: Inglês

10.1002/(sici)1096-9128(199711)9

ISSN

1096-9128

Autores

Joseph Hummel, Ana Azevedo, David J. Kolson, Alexandru Nicolau,

Tópico(s)

Real-Time Systems Scheduling

Resumo

Concurrency: Practice and ExperienceVolume 9, Issue 11 p. 1003-1016 Research Article Annotating the Java bytecodes in support of optimization Joseph Hummel, Joseph Hummel University of Illinois, Department of EECS, Chicago, IL 60607, USASearch for more papers by this authorAna Azevedo, Corresponding Author Ana Azevedo aazevedo@ics.uci.edu University of California, Irvine, Computer Science Department, Irvine, CA 92717-3425, USAUniversity of California, Irvine, Computer Science Department, Irvine, CA 92717-3425, USASearch for more papers by this authorDavid Kolson, David Kolson University of California, Irvine, Computer Science Department, Irvine, CA 92717-3425, USASearch for more papers by this authorAlexandru Nicolau, Alexandru Nicolau University of California, Irvine, Computer Science Department, Irvine, CA 92717-3425, USASearch for more papers by this author Joseph Hummel, Joseph Hummel University of Illinois, Department of EECS, Chicago, IL 60607, USASearch for more papers by this authorAna Azevedo, Corresponding Author Ana Azevedo aazevedo@ics.uci.edu University of California, Irvine, Computer Science Department, Irvine, CA 92717-3425, USAUniversity of California, Irvine, Computer Science Department, Irvine, CA 92717-3425, USASearch for more papers by this authorDavid Kolson, David Kolson University of California, Irvine, Computer Science Department, Irvine, CA 92717-3425, USASearch for more papers by this authorAlexandru Nicolau, Alexandru Nicolau University of California, Irvine, Computer Science Department, Irvine, CA 92717-3425, USASearch for more papers by this author First published: 04 December 1998 https://doi.org/10.1002/(SICI)1096-9128(199711)9:11 3.0.CO;2-GCitations: 13AboutPDF 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 onFacebookTwitterLinkedInRedditWechat Abstract The efficient execution of Java programs presents a challenge to hardware and software designers alike. The difficulty, however, lies with the Java bytecodes. Their model of a simplistic, platform-independent stack machine is well-suited for portability, though at the expense of execution speed. Various approaches are being proposed to increase the speed of Java bytecode programs, including: (i) on-the-fly compilation to native code (also known as JIT or 'just-in-time' compilation); (ii) traditional ('ahead-of-time') compilation of bytecodes to some higher-level intermediate form and then to native code; and (iii) translation of bytecodes to a higher-level language and then use of an existing compiler to produce native code. Speedups of the order of 50 over standard bytecode interpretation have been claimed. All of these approaches rely upon bytecode analysis (of varying sophistication) to extract information about the program, which is then used to optimize the native code during the translation process. However, extracting information from a lower-level representation such as the Java bytecodes can be very expensive. Also, given the fact that most approaches for executing Java bytecodes cannot spend a great deal of time recovering high-level information, the solutions adopted during the translation process must use faster and less accurate analysis techniques, thus penalizing the quality of the native code. In this paper we propose an optimization approach based on bytecode annotations. The bytecodes are annotated during the original source code to bytecode translation, allowing both traditional interpretation by a JVM and aggressive optimization by an annotation-aware bytecode compiler. Annotations hinder neither portability nor compatibility, while preserving optimization information that is expensive to recompute. Preliminary results yield bytecode with C-like performance using JIT technology. © 1997 John Wiley & Sons, Ltd. Citing Literature Volume9, Issue11Special Issue: Java for computational science and engineering – simulation and modeling IINovember 1997Pages 1003-1016 RelatedInformation

Referência(s)