IP Library Granted Patent US 8,473,928
Granted Patent B2
US 8,473,928 · App. 12/763,070 · Granted Jun 25, 2013

Call graph simplification/comparison and automatic initial suspects finding of performance degradations

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 8,473,928
App. No.
12/763,070
Granted
Jun 25, 2013
Kind
B2
Abstract

In one embodiment, a method for call graph analysis is provided. The method includes determining a plurality of nodes in a call graph. The plurality of nodes represent resource consumption of functions of a software program executed in a software system. A simplification factor is determined. A first set of nodes in the plurality of nodes is then eliminated based on exclusive values for the plurality of nodes, inclusive values for the plurality of nodes, and the simplification factor. An inclusive value for a node is a first amount of resources consumed by the node and any descendent nodes of that node. An exclusive value for the node is a second amount of resources consumed by the node. A simplified call graph is output including a second set of nodes in the plurality of nodes. The second set of nodes does not include the eliminated first set of nodes.

Claims (68)

1. A method comprising:

determining a plurality of nodes in a call graph, the plurality of nodes representing resource consumption of functions of a software program executed in a software system;

determining a simplification factor;

eliminating, by a computing device, a first set of nodes in the plurality of nodes based on exclusive values for the plurality of nodes, inclusive values for the plurality of nodes, and the simplification factor, wherein an inclusive value for a node is based on a first amount of resources consumed by the node and any descendant nodes to the node, and wherein an exclusive value for the node is based on a second amount of resources consumed by the node, said eliminating comprising:

determining the node with a lowest inclusive value out of nodes not eliminated;

eliminating the node when a criteria is satisfied;

adding an exclusive value for the node to a total exclusive value of eliminated nodes; and

determining when to stop eliminating nodes based on the total exclusive value of eliminated nodes and the simplification factor; and

outputting a simplified call graph including a second set of nodes in the plurality of nodes, the second set of nodes not including the eliminated first set of nodes.

2. The method of claim 1 , wherein the criterion comprises reachability of descendant nodes of the node to a root node if the node is eliminated.

3. The method of claim 1 , wherein an eliminated node is a callee node, the method further comprising:

after eliminating the callee node, determining any caller nodes to the callee node;

determining if any of the caller nodes include a first inclusive value lower than a second inclusive value for the callee node; and

determining if any of the caller nodes should be eliminated.

4. The method of claim 1 , further comprising eliminating a first set of edges associated with the first set of nodes in the call graph.

5. The method of claim 4 , further comprising eliminating a second set of edges connecting the second set of nodes.

6. The method of claim 5 , wherein eliminating the second set of edges comprises:

determining a maximum attributed value for edges in the first set of nodes; and

eliminating edges connecting the second set of nodes if attributed values for the edges are less than the maximum attributed value.

7. The method of claim 1 , further comprising compressing a plurality of nodes in the second set of nodes into a single node, the single node including characteristics representing the plurality of nodes.

8. The method of claim 1 , wherein the call graph comprises a merged call graph, the method further comprising:

determining a plurality of call graphs;

aggregating the plurality of call graphs into merged call graph; and

determining the simplified call graph from the merged call graph.

9. The method of claim 8 , wherein aggregating comprises:

determining an aggregation function to determine a merged call graph from the plurality of call graphs;

aggregating inclusive values for each node of the plurality of call graphs using the aggregation function; and

aggregating exclusive values for each node of the plurality of call graphs using the aggregation function.

10. The method of claim 8 , further comprising:

determining a critical call graph from the simplified call graph;

determining changed nodes in the critical call graph from the plurality of call graphs; and

determining a set of users that changed the changed nodes.

11. A non-transitory computer-readable storage medium comprising logic that, when executed by one or more computer processors, is operable to:

determine a plurality of nodes in a call graph, the plurality of nodes representing resource consumption of functions of a software program executed in a software system;

determine a simplification factor;

eliminate a first set of nodes in the plurality of nodes based on exclusive values for the plurality of nodes, inclusive values for the plurality of nodes, and the simplification factor, wherein an inclusive value for a node is based on a first amount of resources consumed by the node and any descendant nodes to the node, and wherein an exclusive value for the node is based on a second amount of resources consumed by the node, wherein eliminate includes:

determine the node with a lowest inclusive value out of nodes not eliminated;

eliminate the node when a criteria is satisfied;

add an exclusive value for the node to a total exclusive value of eliminated nodes; and

determine when to stop eliminating nodes based on the total exclusive value of eliminated nodes and the simplification factor; and

output a simplified call graph including a second set of nodes in the plurality of nodes, the second set of nodes not including the eliminated first set of nodes.

12. The computer-readable storage medium of claim 11 , wherein the logic is further operable to compress a plurality of nodes in the second set of nodes into a single node, the single node including characteristics representing the plurality of nodes.

13. The computer-readable storage medium of claim 11 , wherein the criterion comprises reachability of descendant nodes of the node to a root node if the node is eliminated.

14. The computer-readable storage medium of claim 11 , further comprising eliminating a second set of edges connecting the second set of nodes, wherein eliminating the second set of edges comprises:

determining a maximum attributed value for edges in the first set of nodes; and

eliminating edges connecting the second set of nodes if attributed values for the edges are less than the maximum attributed value.

15. A system comprising:

a processor; and

memory,

wherein the memory stores instructions, which when executed by the processor are operable to:

determine a plurality of nodes in a call graph, the plurality of nodes representing resource consumption of functions of a software program executed in a software system;

determine a simplification factor;

eliminate a first set of nodes in the plurality of nodes based on exclusive values for the plurality of nodes, inclusive values for the plurality of nodes, and the simplification factor, wherein an inclusive value for a node is based on a first amount of resources consumed by the node and any descendant nodes to the node, and wherein an exclusive value for the node is based on a second amount of resources consumed by the node, wherein eliminate includes:

determine the node with a lowest inclusive value out of nodes not eliminated;

eliminate the node when a criteria is satisfied;

add an exclusive value for the node to a total exclusive value of eliminated nodes; and

determine when to stop eliminating nodes based on the total exclusive value of eliminated nodes and the simplification factor; and

output a simplified call graph including a second set of nodes in the plurality of nodes, the second set of nodes not including the eliminated first set of nodes.

16. The system of claim 15 , wherein the criterion comprises reachability of descendant nodes of the node to a root node if the node is eliminated.

17. The system of claim 15 , wherein the instructions are further operable to compress a plurality of nodes in the second set of nodes into a single node, the single node including characteristics representing the plurality of nodes.

18. The system of claim 15 , wherein an eliminated node is a callee node, the method further comprising:

after eliminating the callee node, determining any caller nodes to the callee node;

determining if any of the caller nodes include a first inclusive value lower than a second inclusive value for the callee node; and

determining if any of the caller nodes should be eliminated.

19. The system of claim 15 , further comprising eliminating a first set of edges associated with the first set of nodes in the call graph.

20. The system of claim 15 , further comprising eliminating a second set of edges connecting the second set of nodes, wherein eliminating the second set of edges comprises:

determining a maximum attributed value for edges in the first set of nodes; and

eliminating edges connecting the second set of nodes if attributed values for the edges are less than the maximum attributed value.

Assignments (2)
CHANGE OF NAME Recorded Aug 26, 2014
From: SAP AG
To: SAP SE
Reel/Frame 033625/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 19, 2010
From: PARK, CHEOLMAN; YOUNG, CHAN
To: SAP AG
Reel/Frame 024255/0558 →