System and method for characterizing program behavior by sampling at selected program points
First Claim
1. A method for characterizing runtime behavior of a computer program executing in an execution environment, said method comprising:
- a) inserting yield points comprising code to be executed at distinguished locations of a program to be executed, each said yield point indicating a conditional sampling operation during execution of said program;
b) during program execution, unconditionally executing a yield point instance and, in response to executing said yield point instance, ascertaining a state of said execution environment for indicating whether the conditional sampling operation is to be performed; and
,c) when a state of said execution environment indicates a condition for performing said sampling operation, recording relevant information for characterizing behavior of said execution environment, whereby conditional sampling operations performed at unconditionally executed yield points occur at a subset of the executions of yield points.
2 Assignments
0 Petitions
Accused Products
Abstract
A system and method for characterizing runtime behavior of a computer program executing in an execution environment, the method comprising: identifying one or more instances of yield points in a program to be executed, each yield point indicating a potential sampling operation during program execution; during program execution, in response to an identified yield point instance, ascertaining a state of the execution environment for indicating whether a sampling operation is to be performed; and, when the state of the execution environment indicates a sampling operation, recording relevant information for characterizing behavior of the execution environment. Relevant information for characterizing program behavior includes frequencies of methods executed in the program, and calling context associated with methods called by the program. Different mechanisms are provided for determining the sampling condition including the setting of a trigger bit by a runtime system, or, determining a sampling operations based on a fixed percentage of all executed yield points taken.
-
Citations
36 Claims
-
1. A method for characterizing runtime behavior of a computer program executing in an execution environment, said method comprising:
-
a) inserting yield points comprising code to be executed at distinguished locations of a program to be executed, each said yield point indicating a conditional sampling operation during execution of said program; b) during program execution, unconditionally executing a yield point instance and, in response to executing said yield point instance, ascertaining a state of said execution environment for indicating whether the conditional sampling operation is to be performed; and
,c) when a state of said execution environment indicates a condition for performing said sampling operation, recording relevant information for characterizing behavior of said execution environment, whereby conditional sampling operations performed at unconditionally executed yield points occur at a subset of the executions of yield points. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A method for characterizing runtime behavior of a computer program executing in an execution environment, said method comprising:
-
a) inserting yield points comprising code to be executed at distinguished locations of a program to be executed, each said yield point indicating a conditional sampling operation during execution of said program; b) during program execution, unconditionally executing a yield point instance; c) counting a number of executed yield points; d) comparing said number against a predetermined threshold; and
,e) in response to meeting said threshold, performing a sampling operation of said executing program, and, recording relevant information for characterizing behavior of said execution environment in response to said sampling, whereby conditional sampling operations performed at unconditionally executed yield points occur at a subset of the executions of yield points. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22, 23, 24)
-
-
25. A system for characterizing runtime behavior of a computer program executing in an execution environment, said system comprising:
-
a) means for inserting yield points comprising code to be executed at distinguished locations of a program to be executed, each said yield point indicating a conditional sampling operation during execution of said program; b) mechanism for unconditionally executing instances of yield points inserted in said executing program; c) control device for determining a condition for performing a sampling operation of said executing program at an executed yield point instance; and
,d) sampling device for performing said sampling operation of said executing program upon satisfaction of said condition, and recording relevant information for characterizing behavior of said execution environment in response to said sampling, whereby conditional sampling operations performed at unconditionally executed yield points occur at a subset of the executions of yield points. - View Dependent Claims (26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36)
-
Specification