Identifying authors of changes between multiple versions of a file
US-9207933-B2 · Dec 8, 2015 · US
US9367426B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9367426-B2 |
| Application number | US-201514638955-A |
| Country | US |
| Kind code | B2 |
| Filing date | Mar 4, 2015 |
| Priority date | Apr 19, 2010 |
| Publication date | Jun 14, 2016 |
| Grant date | Jun 14, 2016 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
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.
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
by runtime analysis (performance monitoring G06F11/3466) · CPC title
by tracing the execution of the program · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.