Minimizing profiling-related perturbation using periodic contextual information
First Claim
Patent Images
1. A method for monitoring performance of a program, the method comprising the steps of:
- generating a trace record comprising a call stack associated with the program;
detecting an occurrence of a selected event or timer interrupt;
in response to a detection of the selected event or the timer interrupt, obtaining execution context sample data;
generating a trace record comprising the execution context sample data;
comparing the execution context sample data to calibration call stack data in order to match full call stack context, wherein calibration call stack data includes context derived from call stack unwinds of a previous execution of said program; and
identifying a routine associated with the execution context sample data based on a comparison of the execution context sample data to the calibration call stack data.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and system for monitoring performance of a program is provided. A trace record containing a call stack associated with the program is periodically generated. An occurrence of a selected event or a timer interrupt is detected, and in response, an execution context sample is obtained that contains a process identifier, a thread identifier, a program counter, and a stack pointer. A trace record containing the execution context sample data is generated. During post-processing, the execution context samples are compared with a call stack to identify the routine associated with the execution sample data.
141 Citations
22 Claims
-
1. A method for monitoring performance of a program, the method comprising the steps of:
-
generating a trace record comprising a call stack associated with the program;
detecting an occurrence of a selected event or timer interrupt;
in response to a detection of the selected event or the timer interrupt, obtaining execution context sample data;
generating a trace record comprising the execution context sample data;
comparing the execution context sample data to calibration call stack data in order to match full call stack context, wherein calibration call stack data includes context derived from call stack unwinds of a previous execution of said program; and
identifying a routine associated with the execution context sample data based on a comparison of the execution context sample data to the calibration call stack data. - View Dependent Claims (2, 3, 4, 5, 6, 7)
profiling, the program for a period of time;
analyzing trace data generated during the profiling of the program to select routines within the program that consume specifiable amounts of execution resources; and
patching the selected routines with application code to generate trace records comprising call stacks.
-
-
8. A data processing system for monitoring performance of a program, the data processing system comprising:
-
first generating means for generating a trace record comprising a calls stack associated with the program;
detecting means for detecting an occurrence of a selected event or a timer interrupt;
obtaining means for obtaining, in response to a detection of the selected event or the timer interrupt, execution context sample data;
second generating means for generating a trace record comprising the execution context sample data;
comparing means for comparing the execution context sample data to calibration call stack data in order to match full call stack context, wherein calibration call stack data includes context derived from call stack unwinds of a previous execution of said program; and
identifying means for identifying a routine associated with the execution context sample data based on a comparison of the execution context sample data to the calibration call stack data. - View Dependent Claims (9, 10, 11, 12, 13, 14)
profiling means for profiling the program for a period of time;
analyzing means for analyzing trace data generated during the profiling of the program to select routines within the program that consume specifiable amounts of execution resources; and
patching means for patching the selected routines with application code to generate trace records comprising call stacks.
-
-
15. A computer program product in a computer-readable medium for use in a data processing system for monitoring performance of a program, the computer program product comprising:
-
first instructions for generating a trace record comprising a call stack associated with the program;
second instructions for detecting an occurrence of a selected event or a timer interrupt;
third instructions for obtaining, in response to a detection of the selected event or the timer interrupt, execution context sample data;
fourth instructions for generating a trace record comprising the execution context sample data;
fifth instructions for comparing the execution context sample data to calibration call slack data in order to match full call stack context, wherein calibration call stack data includes context derived from call stack unwinds of a previous execution of said program; and
instructions for identifying a routine associated With the execution context sample data based on a comparison of the execution context sample data to the calibration call stack data. - View Dependent Claims (16, 17, 18, 19, 20, 21)
instructions for profiling the program for a period of time;
instructions for analyzing trace data generated during the profiling of the program to select routines within the program that consume specifiable amounts of execution resources; and
instructions for patching the selected routines with application code to generate trace records comprising call.
-
-
22. A method for monitoring performance of a program, the method comprising tire steps of:
-
generating a trace record comprising a call stack associated with the program;
detecting an occurrence of a timer interrupt;
in response to a detection of the timer interrupt, obtaining execution context sample data;
generating a trace record comprising the execution context sample data;
comparing the execution context sample data to calibration call stack data in order to match full call stack context, wherein calibration call stack data includes context derived from call stack unwinds of a previous execution of said program; and
identifying a routine associated with the execution context sample data based on a comparison of the execution context sample data to the calibration call stack data.
-
Specification