Abstract:
. Despite the apparent success of the Java Virtual Machine, its lackluster performance makes it ill-suited for many speed-critical applications. Although the latest just-in-time compilers and dedicated Java processors try to remedy this situation, optimized code compiled directly from a C program source is still considerably faster than software transported via Java byte-codes. This is true even if the Java byte-codes are subsequently further translated into native code. In this paper, we claim that these performance penalties are not a necessary consequence of machine-independence, but related to Java's particular intermediate representation and runtime architecture. We have constructed a prototype and are further developing a software transportability scheme founded on a tree-based alternative to Java bytecodes. This tree-based intermediate representation is not only twice as compact as Java byte-codes, but also contains more high-level information, some of which is cri...
Citations
|
911
|
The Java Virtual Machine Specification
– Lindholm, Yellin
- 1997
|
|
644
|
A data locality optimizing algorithm
– Wolf, Lam
- 1991
|
|
332
|
A technique for high performance data compression
– Welch
- 1984
|
|
238
|
Optimally Profiling and Tracing Programs
– Ball, Larus
- 1994
|
|
182
|
Continuous profiling: where have all the cycles gone
– Anderson, Berc, et al.
- 1997
|
|
176
|
Global Register Allocation at Link Time
– Wall
- 1986
|
|
101
|
Slim binaries
– Franz, Kistler
- 1997
|
|
87
|
Systems for late code modification
– Wall
- 1992
|
|
86
|
Adaptive optimization for SELF: Reconciling high performance with exploratory programming. Thesis CS-TR-94-1520
– Holzle
- 1994
|
|
82
|
The programming language Oberon
– Wirth
- 1988
|
|
66
|
Digital FX!32: Combining emulation and binary translation
– Hookway, Herdeg
- 1997
|
|
58
|
System support for automatic profiling and optimization
– Zhang, Wang, et al.
- 1997
|
|
47
|
Code-Generation On-the-Fly: A Key to Portable Software. Doctoral dissertation no. 10497
– Franz
- 1994
|
|
35
|
Programming languages and their compilers; preliminary notes
– Cocke, Schwartz
|
|
23
|
Adaptive systems for the dynamic run-time optimization of programs
– Hansen
- 1974
|
|
17
|
Dynamic runtime optimization
– Kistler
- 1996
|
|
15
|
Optimizing Compilers for Structured Programming Languages
– Brandis
- 1995
|
|
12
|
The Java Language: An Overview
– Microsystems
- 1995
|
|
1
|
Defence Resesearch Agency
– Kingdom
- 1993
|