𝔖 Bobbio Scriptorium
✦   LIBER   ✦

Annotating the Java bytecodes in support of optimization

✍ Scribed by Hummel, Joseph; Azevedo, Ana; Kolson, David; Nicolau, Alexandru


Publisher
John Wiley and Sons
Year
1997
Tongue
English
Weight
117 KB
Volume
9
Category
Article
ISSN
1040-3108

No coin nor oath required. For personal study only.

✦ Synopsis


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.


πŸ“œ SIMILAR VOLUMES


The role of information support systems
✍ J. J. J. Kasvi; M. Vartiainen; A. Pulkkis; M. Nieminen πŸ“‚ Article πŸ“… 2000 πŸ› John Wiley and Sons 🌐 English βš– 436 KB πŸ‘ 2 views

Sociotechnical approach preaches the affinity of the social and the technical organization but divides organizations into social and technical subsystems. Thus, it has failed to anticipate the possibilities of new technologies within the social system. The social subsystem of a modern sociotechnical

Towards automatic support of parallel sp
✍ Chang, Rong-Guey; Chen, Cheng-Wei; Chuang, Tyng-Ruey; Lee, Jenq Kuen πŸ“‚ Article πŸ“… 1997 πŸ› John Wiley and Sons 🌐 English βš– 183 KB πŸ‘ 1 views

We present a generic matrix class facility in Java and an on-going project for a runtime environment with continuous compilation aiming to support automatic parallelization of sparse computation on distributed environments. Our package comes with a collection of matrix classes with a uniform interfa

Model-supported optimization of phototro
✍ Ezequiel Franco-Lara; Jan Havel; Frank Peterat; Dirk Weuster-Botz πŸ“‚ Article πŸ“… 2006 πŸ› John Wiley and Sons 🌐 English βš– 483 KB πŸ‘ 2 views

A fuzzy-logic light attenuation model was developed and validated for a stirred-tank photobioreactor. Based on this model, local light intensities were used to calculate local specific growth rates of the cyanobacteria Synechococcus PCC 7942. The light regime for maximization of biomass space-time y

A Java/CORBA virtual machine architectur
✍ F. J. GonzΓ‘lez-CastaΓ±o; L. Anido-RifΓ³n; J. M. Pousada-Carballo; P. S. RodrΓ­guez- πŸ“‚ Article πŸ“… 2001 πŸ› John Wiley and Sons 🌐 English βš– 301 KB

Virtual machines for remote execution are a useful tool for utilizing light user interfaces and intensive application cores in different physical machines connected through the Internet. In a virtual machine, application cores are distributed in a network. Specific locations, operating systems and h