Check out the new USENIX Web site.

Home About USENIX Events Membership Publications Students
JVM 2001 Abstract

Dynamic Type Checking in Jalapeño

Bowen Alpern, Anthony Cocchi, and David Grove, IBM T.J. Watson Research Center


A Java virtual machine (JVM) must sometimes check whether a value of one type can be can be treated as a value of another type. The overhead for such dynamic type checking can be a significant factor in the running time of some Java programs. This paper presents a variety of techniques for performing these checks, each tailored to a particular restricted case that commonly arises in Java programs. By exploiting compile-time information to select the most applicable technique to implement each dynamic type check, the run-time overhead of dynamic type checkingcan be sigfinicantly reduced.

This paper suggests maintaining three data structures operationally close to every Java object. The most important of these is a display of identifiers for the superclasses of the object's class. With this array, most dynamic type checks can be performed in four instructions. It also suggests that an equality test of the run-time typeof an array and the declared type of the variable that contains it can be an important short-circuit check for object array stores. Together these techniques result in significant performance improvements on some benchmarks.

?Need help? Use our Contacts page.

Last changed: 3 Jan. 2002 ml
Technical Program
JVM 2001 Home