Dynamic class loading is an integral part of the Java programming language, offering a number advantages such as lazy class loading and dynamic installation of software components. Unfortunately, these advantages often come at the cost of decreased performance because certain optimizations become more difficult to perform when an optimizing compiler cannot assume that it has seen the whole program. This paper introduces thin guards, a simple but effective technique that uses lightweight runtime tests to identify regions of code within which speculative optimizations can be performed. One application of thin guards is described in detail, demonstrating how they can be used to perform speculative inlining in the presence of dynamic class loa...
Computer applications are increasingly being written in object-oriented languages like Java and C++ ...
Java exception checks are designed to ensure that any faulting instruction causing a hardware except...
The Java programming environment uses a highly-developed virtual machine (VM) to execute its program...
1 Introduction Dynamic class loading [20] is an integral part of the Java programming language, offe...
Dynamic class loading is an integral part of the Java TM programming language, oering a number of...
Dynamically typed programming languages have become very popular in the recent years. These language...
Java programs are deployed in a bytecode format that is executed by a Java virtual machine (JVM). J...
We design and implement two Java optimizations based on JSR308 annota- tions: pure method memoizatio...
. The support for precise exceptions in Java, combined with frequent checks for runtime exceptions,...
One of Java's most fundamental core concepts is dynamic class loading. While being very practical in...
This paper presents a strategy, called almost-whole-program compilation, for extending the benefits ...
Many opportunities for easy, big-win, program optimizations are missed by compilers. This is especia...
It is inherently difficult for static analyses to make precise decisions about dynamic features of m...
Both static and dynamic typing provide different benefits to the programmer. Statically typed langua...
The execution model for mobile, dynamically-linked, object-oriented programs has evolved from fast i...
Computer applications are increasingly being written in object-oriented languages like Java and C++ ...
Java exception checks are designed to ensure that any faulting instruction causing a hardware except...
The Java programming environment uses a highly-developed virtual machine (VM) to execute its program...
1 Introduction Dynamic class loading [20] is an integral part of the Java programming language, offe...
Dynamic class loading is an integral part of the Java TM programming language, oering a number of...
Dynamically typed programming languages have become very popular in the recent years. These language...
Java programs are deployed in a bytecode format that is executed by a Java virtual machine (JVM). J...
We design and implement two Java optimizations based on JSR308 annota- tions: pure method memoizatio...
. The support for precise exceptions in Java, combined with frequent checks for runtime exceptions,...
One of Java's most fundamental core concepts is dynamic class loading. While being very practical in...
This paper presents a strategy, called almost-whole-program compilation, for extending the benefits ...
Many opportunities for easy, big-win, program optimizations are missed by compilers. This is especia...
It is inherently difficult for static analyses to make precise decisions about dynamic features of m...
Both static and dynamic typing provide different benefits to the programmer. Statically typed langua...
The execution model for mobile, dynamically-linked, object-oriented programs has evolved from fast i...
Computer applications are increasingly being written in object-oriented languages like Java and C++ ...
Java exception checks are designed to ensure that any faulting instruction causing a hardware except...
The Java programming environment uses a highly-developed virtual machine (VM) to execute its program...