EP0908818A2

Method and apparatus for optimizing the execution of software applications

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.

EP0908818A2, drawing sheet 1
Sheet 1 of 7

Term

Term ended

Projected expiry passed 24 September 2018, 8 years ago.

  1. Priority
  2. Filed
  3. Published
  4. Projected expiry
  5. Today

22 claims: 9 independent, 13 dependent

  1. 1
    A computer-implemented method for dynamically compiling methods during an idle period in the processing of a 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 plurality of methods being included in the computer program, wherein the computer program is arranged to execute both interpreted program code and compiled program code;and initializing a compilation of the first method, wherein the initialization of the compilation of the first method occurs during the idle period.
  2. 5
    A computer-implemented method as recited in any one of the preceding claims further including:determining whether an 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.
  3. 6
    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;determining whether the first method is compiled, wherein the determination 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.
  4. 8
    A computer-implemented method as recited in one of claims 6 and 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.
  5. 12
    A computer-implemented method as recited in any one of claims 6-11 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.
  6. 14
    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 is arranged to execute both interpreted program code and compiled program code;and starting the first task, wherein the starting of the first task occurs during the idle period.
  7. 17
    A computer system for dynamically compiling byte-coded methods during a period of low activity in the processing 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;a mechanism for identifying a first method selected from a plurality of methods during the period of low activity;and a compiler for initializing a compilation of the first method during the period of low activity.
  8. 20
    A computer system as recited in any one of claims 17-19 further including:a diagnostic mechanism, the diagnostic mechanism being arranged to identify when the first method is compiled.
  9. 21
    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;and computer program code devices that initialize a compilation of the first method during the idle period.