IP Library Granted Patent US 7,784,041
Granted Patent B2
US 7,784,041 · App. 11/395,985 · Granted Aug 24, 2010

Mechanism for reducing detectable pauses in dynamic output caused by dynamic compilation

Assignee: Oracle America, Inc.
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,784,041
App. No.
11/395,985
Granted
Aug 24, 2010
Kind
B2
Abstract

A method is disclosed for reducing dynamic pauses during dynamic compilation. Applications running on a system detect the rendering of dynamic output to a user. The dynamic output represents a change in visual or audio data while any application is running. When an application detects such output it notifies the system, which monitors the frequency of the dynamic output. If the frequency of the dynamic output exceeds a threshold, the system informs a compiler on the system to suspend compilation. Compilation normally occurs when an interpreter on the system is instructed to pass processing control to the compiler. One way this occurs is if a method currently being processed by the interpreter has been marked for compilation. Thus, in order to suspend compilation, the compiler ceases to mark methods for compilation so that the interpreter will not be instructed to pass processing control to the compiler.

Claims (26)

1. A machine implemented method, comprising: determining that dynamic output is currently being rendered to a user when an output frequency exceeds a threshold frequency, wherein the output frequency is determined by:

invoking an output indicator each time output is rendered to the user, wherein invocation of the output indicator indicates the presence of output,

forwarding each invocation by the output indicator to a dynamic output monitor,

generating a ratio representing the output frequency by determining the number of instances of invocation of the output indicator within a set time, and wherein the threshold frequency is a maximum number of instances of invocation of the output indicator within the set time before compilation is suspended, and

marking, in response to the determination, a set of instructions to not be compiled, thereby causing the set of instructions to be executed interpretively in bytecode, wherein the dynamic output is one selected from a group consisting of video and audio.

2. The machine-implemented method of claim 1 , wherein the causing the set of instructions not to be compiled comprises: causing the computer system to stop marking the set of instructions for compilation, wherein marking the one or more set of instructions causes the computer system to compile the set of instructions the next time the set of instructions is processed by the computer system.

3. The machine-implemented method of claim 2 , wherein compilation causes the one or more set of instructions to be converted from a first format into a second format, wherein the second format is used to execute the one or more set of instructions natively.

4. The machine-implemented method of claim 2 , wherein an execution log lists the one or more a plurality of sets of instructions are sets of recently executed instructions listed in an execution log, and wherein causing the computer system to stop marking the set of instructions for compilation includes causing the computer system to stop marking any set of recently executed instructions in the execution log.

5. A machine-readable storage medium comprising a set of instruction which, when executed by at lease on processor, causes the at least one processor to perform the following operations: determining that dynamic output is currently being rendered to a user

when an output frequency exceeds a threshold frequency, wherein the output frequency is determined by:

invoking an output indicator each time output is rendered to the user, wherein invocation of the output indicator indicates the presence of output,

forwarding each invocation by the output indicator to a dynamic output monitor,

generating a ratio representing the output frequency by determining the number of instances of invocation of the output indicator within a set time, and wherein the threshold frequency is a maximum number of instances of invocation of the output indicator within the set time before compilation is suspended, and

marking, in response to the determination, a set of instructions to not be compiled, thereby causing the set of instructions to be executed interpretively in bytecode, wherein the dynamic output is one selected from a group consisting of video and audio.

6. The machine-readable storage medium of claim 5 , wherein causing the set of instructions not to be compiled comprises: causing the computer system to stop marking the set of instructions for compilation, wherein marking the set of instructions causes the computer system to compile the set of instructions the next time the set of instructions is processed by the computer system.

7. The machine-readable storage medium of claim 6 , wherein compilation causes the set of instructions to be converted from a first format into a second format, wherein the second format is used to execute the set of instructions natively.

8. The machine-readable storage medium of claim 6 , wherein an execution log lists a plurality of sets of recently executed instructions, and wherein causing the computer system to stop marking the set of instructions for compilation includes causing the computer system to stop marking any set of recently executed instructions in the execution log.

9. An apparatus, comprising: a persistent storage; at least one processor; and a set of instructions, which when executed by the at least one processor, causes the at least one processor to perform the following operations: determining that dynamic output is currently being rendered to a user when an output frequency exceeds a threshold frequency, wherein the output frequency is determined by:

invoking an output indicator each time output is rendered to the user, wherein invocation of the output indicator indicates the presence of output,

forwarding each invocation by the output indicator to a dynamic output monitor,

generating a ratio representing the output frequency by determining the number of instances of invocation of the output indicator within a set time, and wherein the threshold frequency is a maximum number of instances of invocation of the output indicator within the set time before compilation is suspended, and

marking, in response to the determination, a set of instructions to not be compiled, thereby causing the set of instructions to be executed interpretively in bytecode, wherein the dynamic output is one selected from a group consisting of video and audio.

10. The apparatus of claim 9 , wherein causing the set of instructions not to be compiled comprises:

causing the computer system to stop marking the set of instructions for compilation, wherein marking the set of instructions causes the computer system to compile the set of instructions the next time the set of instructions is processed by the computer system.

11. The apparatus of claim 10 , wherein compilation causes the set of instructions to be converted from a first format into a second format, wherein the second format is used to execute the set of instructions natively.

12. The apparatus of claim 10 , wherein an execution log lists a plurality of sets of recently executed instructions, and wherein causing the computer system to stop marking the set of instructions for compilation includes causing the computer system to stop marking any set of recently executed instructions in the execution log.

Assignments (2)
MERGER AND CHANGE OF NAME Recorded Dec 16, 2015
From: ORACLE USA, INC.; SUN MICROSYSTEMS, INC.; ORACLE AMERICA, INC.
To: ORACLE AMERICA, INC.
Reel/Frame 037306/0530 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 30, 2006
From: LAM, IOI K.; PLISS, OLEG A.
To: SUN MICROSYSTEMS, INC.
Reel/Frame 017757/0139 →
Continuity (1)
Related Publication 20070234317A1 · Oct 4, 2007