Relationships derived from trace data
First Claim
1. A method performed by a computer processor, said method comprising:
- receiving trace data gathered by tracing an application;
analyzing said trace data to identify a plurality of code elements, including at least a first code element;
identifying a plurality of directional relationships among said code elements, said directional relationships being identified as occurring between two of said code elements and being identified as having a directionality;
identifying one or more patterns of the code elements, based at least in part on the plurality of directional relationships, the one or more patterns being identified comprising at least one of a star pattern, a pipeline pattern, a parallelism pattern or a cluster pattern, and including at least the first code element;
determining a performance metric for each of said code elements;
determining a characterization for each of said directional relationships;
analyzing said plurality of directional relationships to identify and distinguished between any laggard elements of the plurality of code elements that contribute to a performance bottleneck of the application and any patient elements of the plurality of code elements that do not contribute to a performance bottleneck of the application; and
for at least one laggard element, identifying a laggard optimization setting for increasing resource allocation to or prioritization of the at least one laggard element, while also identifying for at least one patient element, a patient optimization setting for decreasing resource allocation to or prioritization of the at least one patient element, at least one of the laggard optimization setting or the patient optimization setting being operable to improve overall application performance.
2 Assignments
0 Petitions
Accused Products
Abstract
An analysis system may perform network analysis on data gathered from an executing application. The analysis system may identify relationships between code elements and use tracer data to quantify and classify various code elements. In some cases, the analysis system may operate with only data gathered while tracing an application, while other cases may combine static analysis data with tracing data. The network analysis may identify groups of related code elements through cluster analysis, as well as identify bottlenecks from one to many and many to one relationships. The analysis system may generate visualizations showing the interconnections or relationships within the executing code, along with highlighted elements that may be limiting performance.
710 Citations
20 Claims
-
1. A method performed by a computer processor, said method comprising:
-
receiving trace data gathered by tracing an application; analyzing said trace data to identify a plurality of code elements, including at least a first code element; identifying a plurality of directional relationships among said code elements, said directional relationships being identified as occurring between two of said code elements and being identified as having a directionality; identifying one or more patterns of the code elements, based at least in part on the plurality of directional relationships, the one or more patterns being identified comprising at least one of a star pattern, a pipeline pattern, a parallelism pattern or a cluster pattern, and including at least the first code element; determining a performance metric for each of said code elements; determining a characterization for each of said directional relationships; analyzing said plurality of directional relationships to identify and distinguished between any laggard elements of the plurality of code elements that contribute to a performance bottleneck of the application and any patient elements of the plurality of code elements that do not contribute to a performance bottleneck of the application; and for at least one laggard element, identifying a laggard optimization setting for increasing resource allocation to or prioritization of the at least one laggard element, while also identifying for at least one patient element, a patient optimization setting for decreasing resource allocation to or prioritization of the at least one patient element, at least one of the laggard optimization setting or the patient optimization setting being operable to improve overall application performance. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A system comprising:
-
a processor; an analyzer operating on said processor, said analyzer that; receiving trace data gathered by tracing an application; analyzing said trace data to identify a plurality of code elements, including at least a first code element; identifying a plurality of directional relationships among said code elements, said directional relationships being identified as occurring between two of said code elements and being identified as having a directionality; identifying one or more patterns of the code elements, based at least in part on the plurality of directional relationships, the one or more patterns being identified at least one of a star pattern, a pipeline pattern, a parallelism pattern or a cluster pattern, and including at least the first code element; determining a performance metric for each of said code elements; determining a characterization for each of said directional relationships; analyzing said plurality of directional relationships to identify and distinguished between any laggard elements of the plurality of code elements that contribute to a performance bottleneck of the application and any patient elements of the plurality of code elements that do not contribute to a performance bottleneck of the application; and
an optimizer that identifies at least one of;for at least one laggard element, identifying a laggard optimization setting for increasing resource allocation to or prioritization of the at least one laggard element, or for at least one patient element, a patient optimization setting for decreasing resource allocation to or prioritization of the at least one patient element, at least one of the laggard optimization setting or the patient optimization setting being operable to improve overall application performance. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20)
-
Specification