System and method for providing trace information data reduction
First Claim
1. A method for monitoring the performance of a program, comprising the steps of:
- obtaining a plurality of trace events which occur as the program executes;
representing the trace events as one or more nodes in a tree structure;
recording one or more performance statistics at each node in the tree structure;
determining if a selected event is represented in the tree structure; and
if the selected event is not represented in the tree structure, adding a new node for the selected event to the tree structure, wherein the new node is a child node descending from a parent node representing another event.
1 Assignment
0 Petitions
Accused Products
Abstract
The present invention is a system, method, and computer readable medium for representing program event trace information in a way which is very compact and efficient, and yet supports a wide variety of queries regarding system performance. The tracing and reduction of the present invention may be dynamic, in which case information is obtained and added to the trace representation in real-time. Alternately, the tracing and reduction may be static, in which case a trace text file or binary file is obtained from a trace buffer, and the reduction takes place using the trace file as input. The trace information, whether obtained statically or dynamically, is represented as a tree of events. The present invention may be used to present many types of trace information in a compact manner which supports performance queries. For example, the tree structure of the present invention may reflect the call stacks observed during a program'"'"'s execution, and statistics regarding the time spent in the various routines and call stacks may be stored at each node of the tree. The tree structure may be used to store performance information regarding Java bytecodes executed, memory allocated, or other types of performance information. The trace information is presented in a manner which is compact and efficient, and may be used to quickly and easily answer a variety of performance queries. Further, a system may be traced for long periods of time without losing useful performance information due to a limited buffer space.
-
Citations
24 Claims
-
1. A method for monitoring the performance of a program, comprising the steps of:
-
obtaining a plurality of trace events which occur as the program executes; representing the trace events as one or more nodes in a tree structure; recording one or more performance statistics at each node in the tree structure; determining if a selected event is represented in the tree structure; and if the selected event is not represented in the tree structure, adding a new node for the selected event to the tree structure, wherein the new node is a child node descending from a parent node representing another event. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method for monitoring the performance of a program, comprising the steps of:
-
obtaining a plurality of trace events which occur as the program executes; representing the trace events are one or more nodes in a tree structure; and recording one or more performance statistics at each node in the tree structure, wherein said obtaining step comprises the step of identifying one or more call stacks present as the program executes, wherein each call stack is an ordered list of one or more routines that have been entered during execution of the program. - View Dependent Claims (7, 8)
-
-
9. An information handling system, comprising:
-
a processor; a program which executes on the processor; means for obtaining a plurality of trace events which occur as the program executes; means for representing the trace events as one or more nodes in a tree structure; and means for recording one or more performance statistics at each node in the tree structure, wherein said means for obtaining comprises means for identifying one or more call stacks present as the program executes, wherein each call stack is an ordered list of one or more routines that have been entered during execution of the program. - View Dependent Claims (10, 11, 12, 13, 14, 15)
-
-
16. An information handling system, comprising:
-
a processor; a program which executes on the processor; means for obtaining a plurality of trace events which occur as the program executes; means for representing the trace events as one or more nodes in a tree structure; means for recording one or more performance statistics at each node in the tree structure; means for determining if a selected event is represented in the tree structure; and means for adding a new node for the selected event to the tree structure, wherein the new node is a child node descending from a parent node representing another event.
-
-
17. A computer readable medium, comprising:
-
means for obtaining a plurality of trace events which occur as a program executes; means for representing the trace events as one or more nodes in a tree structure; means for recording one or more performance statistics at each node in the tree structure; means for determining if a selected event is represented in the tree structure; and means for adding a new node for the selected event to the tree structure, wherein the new node is a child node descending from a parent node representing another event. - View Dependent Claims (18, 19, 20, 21)
-
-
22. A computer-readable medium, comprising:
-
means for obtaining a plurality of trace events which occur as a program executes; means for representing the trace events as one or more nodes in a tree structure; and means for recording one or more performance statistics at each node in the tree structure, wherein said means for obtaining comprises means for identifying one or more call stacks present as the program executes, wherein each call stack is an ordered list of one or more routines that have been entered during execution of the program. - View Dependent Claims (23, 24)
-
Specification