Font Size: a A A

Annotating mobile code for performance

Posted on:2003-06-03Degree:Ph.DType:Thesis
University:University of Illinois at Urbana-ChampaignCandidate:Jones, JoelFull Text:PDF
GTID:2468390011489018Subject:Computer Science
Abstract/Summary:
Java is unquestionably the most successful mobile code system. The mobile code requirements of machine-independence and network distribution makes the implementation of efficient Java virtual machines difficult.; When Java class files arrive on a client machine, several approaches can be taken to execute the program. The most common approach is to translate the byte-codes into the native machine code of the client machine. This approach—known as “just-in-time,” or “JIT” compilation—is now routinely used to improve the performance of Java programs.; This thesis describes a particular set of optimizations that show a division of labor between machine-independent and machine-dependent parts. In particular, we show optimizations which demonstrate a phenomenon we call “super-linear analysis and linear exploitation.” The super-linear analysis is performed off-line in a machine-independent fashion. The linear exploitation is machine-dependent and is performed in the JVM. By using this division, we can achieve the effects of an optimizing compiler with essentially no run-time cost.; We demonstrate the usefulness of this annotation-based approach to virtual-machine-based mobile code by examining annotations related to the efficient exploitation of registers. The annotations which we have developed are: register assignment, register spilling, and copies. These annotations allow programs for a stack-based; We show the effectiveness of this approach with the standard Java benchmark suite, the SPECjvm, where reductions in load and store instructions generated range from 7% to 18% when these annotations are used.
Keywords/Search Tags:Mobile code, Java, Annotations
Related items