Method for performing dynamic optimization of computer code

Data processing: software development – installation – and managem – Software program development tool – Translation of code

Utility Patent

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C717S152000

Utility Patent

active

06170083

ABSTRACT:

FIELD OF THE INVENTION
The present invention relates to the field of computer software optimization. In particular, the present invention relates to a method of dynamically optimizing compiled Java programs using the technique of path profiling.
BACKGROUND OF THE INVENTION
Most computer programs exist as compiled object code. The compiled object code is designed to operate only on one particular operating system running on one particular computer processor architecture. To distribute a program for several different computer architectures the original source code must be compiled into object code for each different computer processor architecture and each different operating system.
To create a highly portable programming environment, Sun Microsystems, Inc. introduced Java. Java is an object oriented programming language that is compiled from a well-defined source code into Java byte codes. The Java byte codes are designed to execute on a “Java Virtual Machine.” A Java Virtual Machine is not an actual hardware platform. Instead, a Java Virtual Machine is a low level software emulator that can be implemented on many different computer processor architectures and under many different operating systems. Thus, a single compiled Java program can be distributed to any computer processor architecture and operating system that has a Java Virtual Machine implementation available.
Early Java Virtual Machines were implemented as interpreters. In a Java interpreter, each Java byte code is examined and a corresponding operation is performed in the Java Virtual Machine. Although Java byte code interpreters achieve the goal of having a portable programming environment, Java interpreters suffer from slow performance.
To improve the performance of Java Virtual machines, Java compilers were created. Java compilers translate the Java byte codes into native computer instructions for the particular computer architecture that the Java Virtual Machine is running on. Then, the computer processor runs the Java program by directly running the compiled native code. Such compiled Java programs execute much faster than Java programs that are executed using a Java interpreter.
In many applications Java programs are distributed in real time across a computer network. For example, a user may download a Java program from a server into a local client computer system. The user then typically wishes to immediately execute the downloaded Java program. To provide an immediate response to the user, a Java byte code compiler immediately compiles the Java program into native processor code. This technique is known as “Just-In-Time ” compiling. Since the Just-In-Time compilation must be performed very quickly, the Just-In-Time compilation is usually not well optimized. Thus, although a Just-In-Time compiled Java program executes faster than an interpreted Java program, such Just-In-Time compiled Java programs can be improved further.
SUMMARY OF THE INVENTION
The present invention introduces a method of optimizing computer code. The method of the present invention first compiles source code into an object code. While compiling, the method introduces instrumentation code into the object code that performs path profiling. The path profiling instrumentation code counts the number of times each execution path is executed to determine a “hot” execution path. The hot execution path is then dynamically optimized.


REFERENCES:
patent: 5278985 (1994-01-01), Odnert et al.
patent: 5420991 (1995-05-01), Konigsfeld et al.
patent: 5421022 (1995-05-01), McKeen et al.
patent: 5526499 (1996-06-01), Bernstein et al.
patent: 5659752 (1997-08-01), Heisch et al.
patent: 5752038 (1998-05-01), Blake et al.
patent: 5828883 (1998-10-01), Hall
patent: 5923883 (1999-07-01), Tanaka et al.
Cohn-Lowney, Hot Cold Optimization of Large Windows/NT Applications, Proceedings of MICRO29, IEEE, Dec. 1996.
Hsueh-Gyllenhaal-Hwu, “Java Bytecode to Native Code Translation: The Caffeine Prototype and Preliminary Results”, IEEE, Jan. 1996.
Jens Knoop et al., “Partial Dead Code Elimination,”ACM Sigplan, Jun. 1994, pp. 147-157.
R. Nigel Horspool and H.C. Ho, “Partial Redundancy Elimination Driven by a Cost-Benefit Analysis,” Department of Computer Science, University of Victoria, Canada, date unknown.
Bernhard Steffen, “Data Flow Analysis as Model Checking,”Theoretical Aspects of Computer Software, Sep. 24-27, 1991, pp. 346-364.
Thomas Ball and James Larus, “Efficient Path Profiling,”IEEE/ACM International Symposium on Microarchitecture, Dec. 2-4, 1996, Paris, France, pp. 46-57.
Jens Knoop et al., “Lazy Code Motion,”ACM Sigplan, Jun. 1992, pp. 224-234.

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Method for performing dynamic optimization of computer code does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Method for performing dynamic optimization of computer code, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method for performing dynamic optimization of computer code will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2457509

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.