The proliferation of the Internet is fueling the development of mobile comp
uting environments in which mobile code is executed on remote sites. In suc
h environments, the end user must often wait while the mobile program is tr
ansferred from the server to the client where it executes. This downloading
can create significant delays, hurting the interactive experience of users
.
We propose Java class file splitting and class file prefetching optimizatio
ns in order to reduce transfer delay. Class file splitting moves the infreq
uently used part of a class file into a corresponding cold class file to re
duce the number of bytes transferred Java class file prefetching is used to
overlap program transfer delays with program execution. Our splitting and
prefetching compiler optimizations do not require any change to the Java Vi
rtual Machine, and thus can be used with existing Java implementations. Cla
ss file splitting reduces the startup time for Java programs by 10% on aver
age, and class file splitting used with prefetching reduces the overall tra
nsfer delay encountered during a mobile program's execution by 25% to 30% o
n average.