IP Library Granted Patent US 7,788,657
Granted Patent B2
US 7,788,657 · App. 10/789,401 · Granted Aug 31, 2010

Targeted runtime compilation

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,788,657
App. No.
10/789,401
Granted
Aug 31, 2010
Kind
B2
Abstract

A method and system for annotating a Java application file or ground Java application file to insert compiler hinting information such that a just-in-time compiler in a target environment preferentially compiles byte-code within the java application file.

Claims (49)

1. A method for processing a p-code file, comprising:

analyzing p-code methods within said p-code file by a computer to determine a resource utilization for the p-code methods;

identifying one or more analyzed p-code methods that have a resource utilization parameter above a threshold level;

annotating said identified p-code methods to be compiled, said annotating comprising inserting an in-line priority level hint for each annotated p-code method, said priority level hints being hierarchically-related and collectively representing a hierarchical order, said priority level hints enabling preferential processing of said annotated p-code methods in a hierarchical manner corresponding to said hierarchical order of said priority level hints, wherein said annotating comprises selectively setting each of a plurality of normally unused bits within a method access flag field of an identified class file, wherein said unused bits are selectively set to define thereby said priority level hint of a respective annotated method;

replacing one or more lines of instructions in the p-code file with compiled code for the annotated p-code methods;

communicating the p-code file including complied code for the annotated p-code methods via a network to a target environment for execution of the compiled code for the annotated p-code methods and interpretation of uncompiled instructions in the communicated p-code file; and

managing storage of the annotated p-code methods in a cache memory according to usage statistics, code size, and frequency of execution of the annotated p-code methods.

2. The method of claim 1 , wherein:

said p-code file comprises an application for processing by a virtual machine (VM) just-in-time (JIT) compiler.

3. The method of claim 2 , further comprising: selectively pre-compiling portions of said p-code file that are designated by the in-line priority level hints.

4. The method of claim 3 , wherein: said precompiled portion of said application file is included within a virtual machine.

5. The method of claim 1 , further comprising providing said priority level hints as a separate file.

6. The method of claim 1 , wherein:

said resource utilization parameter comprises at least one of a method execution time, a frequency of method invocation, a number of instructions and a use of loop structures.

7. The method of claim 1 , wherein:

said resource utilization parameter comprises at least one of an execution time parameter, an input/output utilization parameter and a processor utilization parameter.

8. The method of claim 1 , wherein:

each identified p-code method is associated with one of a plurality of priority levels, said priority level hints being indicative of respective priority levels.

9. The method of claim 1 , further comprising managing storage of the p-code methods in a cache memory according to the hierarchical order.

10. A computer-readable medium storing computer-executable instructions that, when executed, cause a computer to perform a method for processing a p-code file comprising:

analyzing p-code methods within said p-code file by the computer to determine a resource utilization for the p-code methods;

identifying one or more analyzed p-code methods that have a resource utilization parameter above a threshold level;

annotating said identified p-code methods to be compiled, said annotating comprising inserting an in-line priority level hint for each annotated p-code method, said priority level hints being hierarchically-related and collectively representing a hierarchical order, said priority level hints enabling preferential processing of said annotated p-code methods in a hierarchical manner corresponding to said hierarchical order of said priority level hints, wherein said annotating comprises selectively setting each of a plurality of normally unused bits within a method access flag field of an identified class file, wherein said unused bits are selectively set to define thereby said priority level hint of a respective annotated method;

replacing one or more lines of instructions in the p-code file with compiled code for the annotated p-code methods;

communicating the p-code file including compiled code for the annotated p-code methods via a network to a target environment for execution of the compiled code for the annotated p-code methods and interpretation of uncompiled instructions in the communicated p-code file; and

managing storage of the annotated p-code methods in a cache memory according to usage statistics, code size, and frequency of execution of the annotated p-code methods.

11. The computer-readable medium of claim 10 , further storing computer-exectuable instructions that, when executed, cause the computer to provide said priority level hints as a separate file.

12. The computer-readable medium of claim 10 , wherein:

said resource utilization parameter comprises at least one of a method execution time, a frequency of method invocation, a number of instructions and a use of loop structures.

13. The computer-readable medium of claim 10 , wherein:

said resource utilization parameter comprises at least one of an execution time parameter, an input/output utilization parameter and a processor utilization parameter.

14. The computer-readable medium of claim 10 , wherein:

each identified p-code method is associated with one of a plurality of priority levels, said priority level hints being indicative of respective priority levels.

15. The computer-readable medium of claim 10 , further storing computer-executable instructions that, when executed, cause the computer to perform the following:

selectively pre-compiling portions of said p-code file that are designated by the in-line priority level hints.

16. The computer-readable medium of claim 10 , further storing computer-executable instructions that, when executed, cause the computer to perform the following:

managing storage of the p-code methods in a cache memory according to the hierarchical order.

17. An apparatus comprising:

a processor; and

a memory storing computer-executable instructions that, when executed, cause the apparatus to:

analyze p-code methods within a p-code file by the computer to determine a resource utilization for the p-code methods;

identify one or more analyzed p-code methods that have a resource utilization parameter above a threshold level;

annotate said identified p-code methods to be compiled, said annotating comprising inserting an in-line priority level hint for each annotated p-code method, said priority level hints being hierarchically-related and collectively representing a hierarchical order, said priority level hints enabling preferential processing of said annotated p-code methods in a hierarchical manner corresponding to said hierarchical order of said priority level hints, wherein said annotating comprises selectively setting each of a plurality of normally unused bits within a method access flag field of an identified class file, wherein said unused bits are selectively set to define thereby said priority level hint of a respective annotated method;

replace one or more lines of instructions in the p-code file with compiled code for annotated p-code methods; and

communicate the p-code file including complied code for the annotated p-code methods via a network to a target environment for execution of the compiled code for the annotated p-code methods and interpretation of uncompiled instructions in the communicated p-code file; and

managing storage of the annotated p-code methods in a cache memory according to usage statistics, code size, and frequency of execution of the annotated p-code methods.

18. The apparatus of claim 17 , wherein each identified p-code method is associated with one of a plurality of priority levels, said priority level hints being indicative of respective priority levels.

19. The apparatus of claim 17 , wherein the computer-executable instructions cause the apparatus to selectively pre-compile portions of said p-code file that are designated by the in-line priority level hints.

20. The apparatus of claim 17 , wherein the computer-executable instructions cause the apparatus to manage storage of the p-code methods in a cache memory according to the hierarchical order.

Assignments (4)
MERGER Recorded Apr 17, 2017
From: TVWORKS, LLC
To: COMCAST CABLE COMMUNICATIONS MANAGEMENT, LLC
Reel/Frame 042269/0069 →
CHANGE OF NAME Recorded Oct 24, 2005
From: DOUBLE C TECHNOLOGIES, LLC
To: TVWORKS, LLC
Reel/Frame 016931/0195 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 27, 2005
From: LIBERATE TECHNOLOGIES
To: DOUBLE C TECHNOLOGIES, LLC
Reel/Frame 016415/0967 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 28, 2004
From: WANNAMAKER, JEFFREY; SCHEYEN, PETER G.N.
To: LIBERATE TECHNOLOGIES
Reel/Frame 015399/0587 →