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

US9367426B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9367426-B2
Application numberUS-201514638955-A
CountryUS
Kind codeB2
Filing dateMar 4, 2015
Priority dateApr 19, 2010
Publication dateJun 14, 2016
Grant dateJun 14, 2016

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

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.

First claim

Opening claim text (preview).

What is claimed is: 1. A computer-implemented method comprising: receiving a plurality of call graphs from an executable software system, each call graph comprising a plurality of nodes, wherein multiple nodes in different call graphs correspond to the same sub-routines of the executable software system, wherein each node is associated with one or more values indicating resource consumption, and wherein the plurality of call graphs represent resource consumption of the executable software system at different times; generating a merged call graph from the plurality of call graphs, wherein said one or more values for nodes in different call graphs corresponding to the same sub-routine are combined, and wherein the combined values in the merged call graph represent resource consumption across said different times; eliminating nodes from the merged call graph based on said combined values to generate a critical call graph indicating the nodes that consume the most significant amount of resources across said different times; identifying a node within the critical call graph that has been changed across said different times by using a version control system and a source code indexing tool on the nodes in said critical call graph at said different times, wherein the source code indexing tool determines a related source file for the node, and wherein the version control system determines a user who has modified the related source file that was determined by the source code indexing tool; and analyzing the node to determine a contributing factor to the resource consumption. 2. The method of claim 1 , wherein analyzing the node comprises identifying a source code file corresponding to the node which has been modified across said different times. 3. The method of claim 2 , wherein analyzing the node further comprises identifying the user who modified the source code file. 4. The method of claim 1 , wherein the combined values in the merged call graph aggregate the difference between the one or more values for nodes in the different call graphs as compared to a baseline time represented by a call graph from the different call graphs. 5. The method of claim 1 , wherein the eliminating nodes from the merged call graph comprises: ranking the combined values; and evaluating the nodes for elimination in order of said ranking. 6. The method of claim 5 , wherein an evaluated node is not eliminated if the removal of the evaluated node would leave any descendent nodes without a path to a root node. 7. The method of claim 1 , further comprising: identifying at least a portion of the merged call graph as a linear call path comprising a third set of nodes; and replacing the third set of nodes with a single node. 8. A non-transitory computer readable storage medium storing one or more programs, the one or more programs comprising instructions for: receiving a plurality of call graphs from an executable software system, each call graph comprising a plurality of nodes, wherein multiple nodes in different call graphs correspond to the same sub-routines of the executable software system, wherein each node is associated with one or more values indicating resource consumption, and wherein the plurality of call graphs represent resource consumption of the executable software system at different times; generating a merged call graph from the plurality of call graphs, wherein said one or more values for nodes in different call graphs corresponding to the same sub-routine are combined, and wherein the combined values in the merged call graph represent resource consumption across said different times; eliminating nodes from the merged call graph based on said combined values to generate a critical call graph indicating the nodes that consume the most significant amount of resources across said different times; identifying a node within the critical call graph that has been changed across said different times by using a version control system and a source code indexing tool on the nodes in said critical call graph at said different times, wherein the source code indexing tool determines a related source file for the node, and wherein the version control system determines a user who has modified the related source file that was determined by the source code indexing tool; and analyzing the node to determine a contributing factor to the resource consumption. 9. The non-transitory computer readable storage medium of claim 8 , wherein analyzing the node comprises identifying a source code file corresponding to the node which has been modified across said different times. 10. The non-transitory computer readable storage medium of claim 9 , wherein analyzing the node further comprises identifying the user who modified the source code file. 11. The non-transitory computer readable storage medium of claim 8 , wherein the combined values in the merged call graph aggregate the difference between the one or more values for nodes in the different call graphs as compared to a baseline time represented by a call graph from the different call graphs. 12. The non-transitory computer readable storage medium of claim 8 , wherein the eliminating nodes from the merged call graph comprises: ranking the combined values; and evaluating the nodes for elimination in order of said ranking. 13. The non-transitory computer readable storage medium of claim 12 , wherein an evaluated node is not eliminated if the removal of the evaluated node would leave any descendent nodes without a path to a root node. 14. The non-transitory computer readable storage medium of claim 8 , further comprising: identifying at least a portion of the merged call graph as a linear call path comprising a third set of nodes; and replacing the third set of nodes with a single node. 15. A computer implemented system, comprising: one or more computer processors; and a non-transitory computer-readable storage medium comprising instructions, that when executed, control the one or more computer processors to be configured for: receiving a plurality of call graphs from an executable software system, each call graph comprising a plurality of nodes, wherein multiple nodes in different call graphs correspond to the same sub-routines of the executable software system, wherein each node is associated with one or more values indicating resource consumption, and wherein the plurality of call graphs represent resource consumption of the executable software system at different times; generating a merged call graph from the plurality of call graphs, wherein said one or more values for nodes in different call graphs corresponding to the same sub-routine are combined, and wherein the combined values in the merged call graph represent resource consumption across said different times; eliminating nodes from the merged call graph based on said combined values to generate a critical call graph indicating the nodes that consume the most significant amount of resources across said different times; identifying a node within the critical call graph that has been changed across said different times by using a version control system and a source code indexing tool on the nodes in said critical call graph at said different times, wherein the source code indexing tool determines a related source file for the node, and wherein the version control system determines a user who has modified the related source file that was determined by the source code indexing tool; and analyzing the node to determine a contributing factor to the resource consumption. 16. The computer implemented system of claim

Assignees

Inventors

Classifications

  • by runtime analysis (performance monitoring G06F11/3466) · CPC title

  • by tracing the execution of the program · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9367426B2 cover?
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 plu…
Who is the assignee on this patent?
Sap Se
What technology area does this patent fall under?
Primary CPC classification G06F11/3612. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jun 14 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).