Apparatus and method for analyzing performance of a computer program
First Claim
1. An apparatus comprising:
- (A) at least one processor;
(B) a memory coupled to the at least one processor;
(C) a computer program residing in the memory, the computer program comprising a plurality of code segments; and
(D) a computer program performance analyzer residing in the memory that includes;
a logger that logs performance data for the computer program as the computer program executes under a predefined set of program execution conditions; and
a graphical program generator that generates a graphical representation of the performance data, the graphical representation including a plurality of nodes that correspond to code segments and a plurality of directional numbered paths between nodes.
1 Assignment
0 Petitions
Accused Products
Abstract
An apparatus and method allow analyzing the performance of a computer program. The computer program is initially executed according to a predefined set of program execution conditions. As the computer program executes, information for each code segment is logged. Using the logged performance data, a graphical representation of the executed computer program is constructed. A user can then formulate ad hoc queries to analyze any desired performance parameters for the computer program by replaying how the computer program ran using the graphical representation of the executed computer program. The present invention thus allows a user to detect via queries complex performance bottlenecks that are caused by interactions between multiple code segments.
-
Citations
29 Claims
-
1. An apparatus comprising:
-
(A) at least one processor;
(B) a memory coupled to the at least one processor;
(C) a computer program residing in the memory, the computer program comprising a plurality of code segments; and
(D) a computer program performance analyzer residing in the memory that includes;
a logger that logs performance data for the computer program as the computer program executes under a predefined set of program execution conditions; and
a graphical program generator that generates a graphical representation of the performance data, the graphical representation including a plurality of nodes that correspond to code segments and a plurality of directional numbered paths between nodes. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
(1) execution time for the selected code segment; and
(2) all code segments, if any, called during the execution of the selected code segment.
-
-
5. The apparatus of claim 1 further comprising a query tool that allows a user to define at least one query and that gathers from the graphical representation information to satisfy the at least one query.
-
6. The apparatus of claim 5 further comprising a program replay mechanism that steps through the graphical representation of the performance data and gathers information from the performance data to satisfy the at least one query.
-
7. The apparatus of claim 1 wherein the number of a numbered path from a first node representing a first code segment to a second node representing a second code segment indicates a number of times the first code segment calls the second code segment.
-
8. The apparatus of claim 1 wherein the graphical representation includes execution time for each node.
-
9. An apparatus comprising:
-
(1) at least one processor;
(2) a memory coupled to the at least one processor;
(3) a computer program residing in the memory, the computer program comprising a plurality of code segments;
(4) a computer program performance analyzer residing in the memory that includes;
(4A) a code segment logger that logs performance data for each code segment in the computer program as the computer program executes under a predefined set of program execution conditions, the performance data for a selected code segment including;
(4A1) execution time for the selected code segment; and
(4A2) all code segments, if any, called during the execution of the selected code segment;
(4B) a graphical program generator that generates a graphical representation of the performance data, the graphical representation including a plurality of nodes that correspond to code segments and a plurality of directional numbered paths between nodes;
(4C) a query tool that allows a user to define at least one query; and
(4D) a program replay mechanism that steps through the graphical representation of the performance data and gathers information to satisfy the at least one query.
-
-
10. An apparatus comprising:
-
a computer program residing in a memory, the computer program comprising a plurality of code segments;
means for logging performance data for each code segment in the computer program as the computer program executes under a predefined set of program execution conditions;
means for constructing a graphical representation of the performance data, the graphical representation including a plurality of nodes that correspond to code segments and a plurality of directional numbered paths between nodes;
means for formulating a query; and
means for gathering from the graphical representation information that satisfies the query.
-
-
11. A method for analyzing the performance of a computer program, the method comprising the steps of:
-
(1) logging performance data for each code segment in the computer program as the computer program executes under a predefined set of program execution conditions;
(2) constructing a graphical representation of the performance data, the graphical representation including a plurality of nodes that correspond to code segments and a plurality of directional numbered paths between nodes;
(3) formulating a query; and
(4) gathering from the graphical representation information that satisfies the query. - View Dependent Claims (12, 13, 14, 15)
-
-
16. A method for analyzing the performance of a computer program that includes a plurality of code segments, the method comprising the steps of:
-
(1) logging performance data for each code segment in the computer program as the computer program executes under a predefined set of program execution conditions, the performance data for a selected code segment including;
(1A) execution time for the selected code segment; and
(2A) all code segments, if any, called during the execution of the selected code segment;
(2) generating a graphical representation of the performance data, the graphical representation including a plurality of nodes that correspond to code segments and a plurality of directional numbered paths between nodes;
(3) defining at least one query; and
(4) stepping through the graphical representation of the performance data and gathering information to satisfy the at least one query.
-
-
17. A program product comprising:
-
(A) a computer program performance analyzer that includes;
a logger that logs performance data for a computer program that includes a plurality of code segments as the computer program executes under a predefined set of program execution conditions;
a graphical program generator that generates a graphical representation of the performance data, the graphical representation including a plurality of nodes that correspond to code segments and a plurality of directional numbered paths between nodes; and
(B) signal bearing media bearing the computer program performance analyzer. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25, 26)
(1) execution time for the selected code segment; and
(2) all code segments, if any, called during the execution of the selected code segment.
-
-
23. The program product of claim 17 further comprising a query tool that allows a user to define at least one query and that gathers from the graphical representation information to satisfy the at least one query.
-
24. The program product of claim 23 further comprising a program replay mechanism that steps through the graphical representation of the performance data and gathers information from the graphical representation to satisfy the at least one query.
-
25. The program product of claim 17 wherein the number of a numbered path from a first node representing a first code segment to a second node representing a second code segment indicates a number of times the first code segment calls the second code segment.
-
26. The program product of claim 17 wherein the graphical representation includes execution time for each node.
-
27. A program product comprising:
-
(A) a computer program performance analyzer that includes;
(A1) a code segment logger that logs performance data for each code segment in the computer program as the computer program executes under a predefined set of program execution conditions, the performance data for a selected code segment including;
(A1a) execution time for the selected code segment; and
(A1b) all code segments, if any, called during the execution of the selected code segment;
(A2) a graphical program generator that generates a graphical representation of the performance data, the graphical representation including a plurality of nodes that correspond to code segments and a plurality of directional numbered paths between nodes;
(A3) a query tool that allows a user to define at least one query; and
(A4) a program replay mechanism that steps through the graphical representation of the performance data and gathers information to satisfy the at least one query; and
(B) signal bearing media bearing the computer program performance analyzer. - View Dependent Claims (28, 29)
-
Specification