← Back to Patent Explorer
US5970249A Expired / Lapsed US ⏱️ 0.0 years remaining

Method and apparatus for performing byte-code optimization during pauses

Assignee: Oracle America Inc
•
Filing: 1997-10-06
•
Granted: 1999-10-19
•
Expires: 2017-10-06
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract Methods and apparatus for dynamically compiling byte codes associated with methods during idle periods in the execution of a computer program are disclosed. The described methods are particularly suitable for use in computer systems that are arranged to execute both interpreted and compiled byte codes. In some embodiments, methods to be dynamically compiled are referenced in one or more lists. The lists may be prioritized to facilitate the compilation of the highest priority methods first. In one embodiment, a pair of compilation lists are provided with a first one of the compilation lists being created prior to processing the computer program while the other is created during the processing of the computer program.

Inventors

  • 👤 Urs Holzle
  • 👤 Lars Bak

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-01 19:14
CPC Classifications
G; G06; G06F; G06F9/00; G06F8/00; G06F8/40; G06F8/41; G06F8/48; G06F9/06; G06F9/44; G06F9/455; G06F9/45504; G06F9/45516

Claims Analysis

Total Claims: 33
Claim 1
Independent Claim 94 words
A computer-implemented method for dynamically compiling methods during an idle period in the processing of an executable computer program, the computer-implemented method comprising: identifying the idle period; identifying a first method selected from a plurality of methods during the idle period, the first method being suitable for compilation, the plurality of methods being included in the executable computer program, wherein the executable computer program includes both interpreted code and compiled code; and initializing a compilation of the first method, wherein the initialization of the compilation of the first method occurs during the idle period.
Claim 2
Dependent Claim 94 words
A computer-implemented method for dynamically compiling methods during an idle period in the processing of an executable computer program, the computer-implemented method comprising: identifying the idle period; identifying a first method selected from a plurality of methods during the idle period, the first method being suitable for compilation, the plurality of methods being included in the executable computer program, wherein the executable computer program includes both interpreted code and compiled code; and initializing a compilation of the first method, wherein the initialization of the compilation of the first method occurs during the idle period.
Claim 3
Dependent Claim 41 words
A computer-implemented method as recited in claim 1 wherein the plurality of methods is referenced in a first list associated with the executable computer program and the first method is a highest priority method for compilation associated with the first list.
Claim 4
Dependent Claim 89 words
A computer-implemented method as recited in claim 1 wherein a first set of methods selected from the plurality of methods is associated with a first list and a second set of methods selected from the plurality of methods is associated with a second list, the first list being created during the processing of the executable computer program the second list being created before the processing of the executable computer program, wherein identifying the first method includes: selecting the first method as a highest priority method from the first list.
Claim 5
Dependent Claim 89 words
A computer-implemented method as recited in claim 1 wherein a first set of methods selected from the plurality of methods is associated with a first list and a second set of methods selected from the plurality of methods is associated with a second list, the first list being created during the processing of the executable computer program the second list being created before the processing of the executable computer program, wherein identifying the first method includes: selecting the first method as a highest priority method from the second list.
Claim 6
Dependent Claim 98 words
A computer-implemented method as recited in claim 1 further including: determining whether an interrupt is received by the executable computer program after the initialization of the compilation of the first method; continuing the compilation of the first method for a predetermined period of time when it is determined that an interrupt has been received; determining whether the compilation of the first method is completed after the predetermined period of time; and aborting the compilation of the first method when it is determined that the compilation of the first method is not completed after the predetermined period of time.
Claim 7
Dependent Claim 44 words
A computer-implemented method as recited in claim 1 wherein the idle period is identified during run-time execution of the executable computer program, and the compilation of the first method is initiated during the idle period during the run-time execution of the executable computer program.
Claim 8
Dependent Claim 114 words
A computer-implemented method for dynamically compiling methods during a period of low activity in the overall processing of a computer program, the computer-implemented method comprising: identifying the period of low activity; identifying a first method selected from a plurality of methods during the period of low activity, the plurality of methods being included in the computer program, the first method being suitable for compilation; determining whether the first method is compiled, wherein the determination of whether the first method is compiled is made during the period of low activity; and initializing a compilation of the first method during the period of low activity when it is determined that the first method is not compiled.
Claim 9
Dependent Claim 114 words
A computer-implemented method for dynamically compiling methods during a period of low activity in the overall processing of a computer program, the computer-implemented method comprising: identifying the period of low activity; identifying a first method selected from a plurality of methods during the period of low activity, the plurality of methods being included in the computer program, the first method being suitable for compilation; determining whether the first method is compiled, wherein the determination of whether the first method is compiled is made during the period of low activity; and initializing a compilation of the first method during the period of low activity when it is determined that the first method is not compiled.
Claim 10
Dependent Claim 85 words
A computer-implemented method as recited in claim 7 further including: identifying a second method selected from the plurality of methods during the period of low activity when it is determined that the first method is compiled; determining whether the second method is compiled, wherein the determination of whether the second method is compiled occurs during the period of low activity; and initializing a compilation of the second method during the period of low activity when it is determined that the second method is not compiled.
Claim 11
Dependent Claim 36 words
A computer-implemented method as recited in claim 7 further including: determining a priority value for each of the plurality of methods, wherein the first method is identified based on the priority value for the first method.
Claim 12
Dependent Claim 39 words
A computer-implemented method as recited in claim 9 wherein determining the priority value for each of the plurality of methods includes processing an invocation counter associated with each of the plurality of methods during the period of low activity.
Claim 13
Dependent Claim 38 words
A computer-implemented method as recited in claim 9 wherein determining the priority value for each of the plurality of methods includes estimating a compilation time for each of the plurality of methods during the period of low activity.
Claim 14
Dependent Claim 87 words
A computer-implemented method as recited in claim 7 wherein a first set of methods selected from the plurality of methods is associated with a first list and a second set of methods selected from the plurality of methods is associated with a second list, the first list being created during the processing of the computer program the second list being created before the processing of the computer program, wherein identifying the first method includes: selecting the first method as a highest priority method from the first list.
Claim 15
Dependent Claim 97 words
A computer-implemented method as recited in claim 7 further including: determining whether a interrupt is received by the computer program after the initialization of the compilation of the first method; continuing the compilation of the first method for a predetermined period of time when it is determined that an interrupt has been received; determining whether the compilation of the first method is completed after the predetermined period of time; and aborting the compilation of the first method when it is determined that the compilation of the first method is not completed after the predetermined period of time.
Claim 16
Dependent Claim 82 words
A computer-implemented method as recited in claim 13 further including: completing the compilation of the first method when it is determined that an interrupt has not been received; identifying a second method selected from a plurality of methods during the period of low activity; determining whether the second method is compiled during the period of low activity; and initializing a compilation of the second method during the period of low activity when it is determined that the second method is not compiled.
Claim 17
Dependent Claim 46 words
A computer-implemented method as recited in claim 7 wherein the period of low activity is identified during run-time execution of the computer program, and the compilation of the first method is initiated during the period of low activity during the run-time execution of the computer program.
Claim 18
Dependent Claim 93 words
A computer-implemented method for dynamically processing delayed tasks during an idle period in the processing of a computer program, the computer-implemented method comprising: identifying the idle period in the processing of the computer program; identifying a first task selected from a plurality of tasks during the idle period in the processing of the computer program, the plurality of tasks being included in the computer program, wherein the computer program includes both interpreted code and compiled code; and starting the first task, wherein the starting of the first task occurs during the idle period.
Claim 19
Dependent Claim 93 words
A computer-implemented method for dynamically processing delayed tasks during an idle period in the processing of a computer program, the computer-implemented method comprising: identifying the idle period in the processing of the computer program; identifying a first task selected from a plurality of tasks during the idle period in the processing of the computer program, the plurality of tasks being included in the computer program, wherein the computer program includes both interpreted code and compiled code; and starting the first task, wherein the starting of the first task occurs during the idle period.
Claim 20
Dependent Claim 19 words
A computer-implemented method as recited in claim 16 further including completing the first task when an interrupt is received.
Claim 21
Dependent Claim 19 words
A computer-implemented method as recited in claim 16 further including suspending the first task when an interrupt is received.
Claim 22
Dependent Claim 100 words
A computer system for dynamically compiling byte-coded methods during a period of low activity during the execution of a computer program, the methods being associated with the computer program, the computer system comprising: a mechanism for identifying the period of low activity during the execution of the computer program; a mechanism for identifying a first method selected from a plurality of methods during the period of low activity, wherein identifying the first method includes identifying whether the first method is suitable for compilation; and a compiler for initializing a compilation of the first method during the period of low activity.
Claim 23
Dependent Claim 100 words
A computer system for dynamically compiling byte-coded methods during a period of low activity during the execution of a computer program, the methods being associated with the computer program, the computer system comprising: a mechanism for identifying the period of low activity during the execution of the computer program; a mechanism for identifying a first method selected from a plurality of methods during the period of low activity, wherein identifying the first method includes identifying whether the first method is suitable for compilation; and a compiler for initializing a compilation of the first method during the period of low activity.
Claim 24
Dependent Claim 48 words
A computer system as recited in claim 19 further including: a first list arranged to reference a first set of the plurality of methods, wherein the first list is associated with the computer program and the first method is a highest priority method associated with the first list.
Claim 25
Dependent Claim 50 words
A computer system as recited in claim 20 further including: a second list arranged to reference a second set of the plurality of methods, wherein the second list is created before the processing of the computer program and the first list is created during the processing of the computer program.
Claim 26
Dependent Claim 91 words
A computer system as recited in claim 19 further including: an interrupt processor arranged to receive an interrupt signal during the compilation of the first method, the interrupt processor being in communication with the compiler, wherein the compiler is further arranged to continue the compilation of the first method for a predetermined period of time in response to a signal from the interrupt processor; and an aborting mechanism, the aborting mechanism being in communication with the compiler, wherein the aborting mechanism is arranged to abort the compilation of the first method.
Claim 27
Dependent Claim 26 words
A computer system as recited in claim 19 further including: a diagnostic mechanism, the diagnostic mechanism being arranged to identify when the first method is compiled.
Claim 28
Dependent Claim 90 words
A computer-readable medium including computer program code devices arranged to dynamically compile methods during an idle period in the processing of a computer program, the computer-readable medium comprising: computer program code devices that identify the idle period; computer program code devices that identify a first method selected from a plurality of methods during the idle period, the plurality of methods being included in the computer program, the first method being suitable for compilation; and computer program code devices that initialize a compilation of the first method during the idle period.
Claim 29
Dependent Claim 90 words
A computer-readable medium including computer program code devices arranged to dynamically compile methods during an idle period in the processing of a computer program, the computer-readable medium comprising: computer program code devices that identify the idle period; computer program code devices that identify a first method selected from a plurality of methods during the idle period, the plurality of methods being included in the computer program, the first method being suitable for compilation; and computer program code devices that initialize a compilation of the first method during the idle period.
Claim 30
Dependent Claim 20 words
A computer-readable medium as recited in claim 24 wherein the computer program code devices are embodied in a carrier wave.
Claim 31
Dependent Claim 97 words
A computer-readable medium as recited in claim 24 wherein a first set of methods selected from the plurality of methods is associated with a first list and a second set of methods selected from the plurality of methods is associated with a second list, the first list being created during the processing of the computer program the second list being created before the processing of the computer program, wherein computer program code devices that identify the first method include: computer program code devices that select the first method as a highest priority method from the first list.
Claim 32
Dependent Claim 97 words
A computer-readable medium as recited in claim 24 wherein a first set of methods selected from the plurality of methods is associated with a first list and a second set of methods selected from the plurality of methods is associated with a second list, the first list being created during the processing of the computer program the second list being created before the processing of the computer program, wherein computer program code devices that identify the first method include: computer program code devices that select the first method as a highest priority method from the first list.
Claim 33
Dependent Claim 117 words
A computer-readable medium as recited in claim 24 further including: computer program code devices that determine whether an interrupt is received by the computer program after the initialization of the compilation of the first method; computer program code devices that continue the compilation of the first method for a predetermined period of time when it is determined that an interrupt has been received; computer program code devices that determine whether the compilation of the first method is completed after the predetermined period of time; and computer program code devices that abort the compilation of the first method when it is determined that the compilation of the first method is not completed after the predetermined period of time.

References Cited (Backward Citations)

US5694603A Cited
US4658351A Cited
US5586328A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2002-10-18 2003-04-19 2003-10-19 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2006-10-18 2007-04-19 2007-10-19 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2010-10-18 2011-04-19 2011-10-19 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag