UC San Diego Technical Report CS2001-672, May 2001
Internet computing has been enabled by a mobile program execution model in which architecture-independent programs transfer to where they will be executed. The Java language model is designed to implement mobile execution by transferring bytecodes to a virtual machine which translates them into native machine instructions and then executes them on the target site.
Implementing Java's mobile execution model efficiently has proved challenging for two reasons. First, the time required to transfer program code from the place where it is stored to the Java Virtual Machine (JVM) that will execute it is perceived by the program's user as execution delay. Current levels of deliverable Internet performance can cause this delay to be substantial. Second, once the code has arrived it must either be interpreted or compiled ``just-in-time'' for its execution. Just-In-Time (JIT) compilation offers improved execution speed over interpretation by exploiting the opportunity for compile-time optimizations, but the compilation time is also perceived by the program's user as execution delay.
In this thesis, we define Load Delay as the unification of these two sources of overhead: transfer delay and compilation delay. We detail the causes of, describe the existing technology that contributes to, and show the degree to which load delay degrades performance of Internet-computing applications. We show that solutions to the problem of load delay in these Mobile programs can be attacked in one of two ways regardless of the source: through Avoidance and Overlap. Avoidance is achieved by eliminating all or part of the cause of load delay and overlap by performing useful work concurrently with the delay. Both have the potential to reduce the effect of load delay and to improve performance of mobile programs. We present numerous solutions to load delay that implement either avoidance, overlap, or both. Our results show that both sources of load delay can be reduced substantially given currently available remote execution technology. In addition, our results suggest modifications that can be made to existing technology to further improve performance of Internet-computing applications.