Increasing performance at runtime from trace data
First Claim
1. A computer-implemented method for optimizing runtime execution of an application based on tracer data, the computer-implemented method being performed by one or more processors executing computer executable instructions for the computer-implemented method, and the computer-implemented method comprising:
- tracing an application and gathering performance data for identifying a plurality of code elements related to said application;
gathering and storing tracer data for the plurality of code elements, the tracer data comprising;
performance data for one or more of the identified plurality of code elements; and
relationship data for one or more of the identified plurality of code elements;
based on the stored tracer data, generating a network representation for the plurality of code elements, the network representation comprising;
nodes representing code elements; and
edges that connect the plurality of nodes in various ways, the edges representing relationships between connected code elements;
analyzing said network representation and identifying as a result of the analysis one or more node patterns of a set of pre-determined node patterns in which at least three or more code elements interact with one another, wherein the identified node patterns indicate specific classifications for their constituent code elements of the identified node patterns, and wherein the specific classification indicates which of various optimization algorithms to apply to a given code element of interest;
applying the indicated algorithms to the respective code elements of interest to generate a runtime configuration that applies runtime setting to the code elements;
storing the runtime configuration; and
using the runtime configuration for the application when running the application in a runtime environment.
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.
-
Citations
32 Claims
-
1. A computer-implemented method for optimizing runtime execution of an application based on tracer data, the computer-implemented method being performed by one or more processors executing computer executable instructions for the computer-implemented method, and the computer-implemented method comprising:
-
tracing an application and gathering performance data for identifying a plurality of code elements related to said application; gathering and storing tracer data for the plurality of code elements, the tracer data comprising; performance data for one or more of the identified plurality of code elements; and relationship data for one or more of the identified plurality of code elements; based on the stored tracer data, generating a network representation for the plurality of code elements, the network representation comprising; nodes representing code elements; and edges that connect the plurality of nodes in various ways, the edges representing relationships between connected code elements; analyzing said network representation and identifying as a result of the analysis one or more node patterns of a set of pre-determined node patterns in which at least three or more code elements interact with one another, wherein the identified node patterns indicate specific classifications for their constituent code elements of the identified node patterns, and wherein the specific classification indicates which of various optimization algorithms to apply to a given code element of interest; applying the indicated algorithms to the respective code elements of interest to generate a runtime configuration that applies runtime setting to the code elements; storing the runtime configuration; and using the runtime configuration for the application when running the application in a runtime environment. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A computer program product comprising a computer storage device containing computer-executable instructions for a computer-implemented method for optimizing runtime execution of an application based on tracer data, the computer- implemented method being performed by one or more processors executing the computer executable instructions, and wherein the computer-implemented method comprises:
-
tracing an application and identifying a plurality of code elements related to said application; gathering and storing tracer data for the plurality of code elements, the tracer data comprising; performance data for one or more of the identified plurality of code elements; and relationship data for one or more of the identified plurality of code elements; based on the stored tracer data, generating a network representation for the plurality of code elements, the network representation comprising; nodes representing code elements; and edges that connect the plurality of nodes in various ways, the edges representing relationships between connected code elements; analyzing said network representation and identifying as a result of the analysis one or more node patterns of a set of pre-determined node patterns in which at least three or more code elements interact with one another, and wherein the identified node patterns indicate specific classifications for constituent code elements of the identified node patterns, and wherein the specific classification indicates which of various optimization algorithms to apply to a given code element of interest; applying the indicated algorithms to the each respective code element of interest to generate a runtime configuration that applies runtime settings to the code elements; storing the runtime configuration; and using the runtime configuration for the application when running the application in a runtime environment. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21, 22)
-
-
23. A computer computing system comprising:
-
one or more processors; a computer memory device containing computer-executable instructions for a computer-implemented method for optimizing runtime execution of an application based on tracer data, the computer-implemented method being performed by one or more processors executing the computer executable instructions, and wherein the computer-implemented method comprises; tracing an application and identifying a plurality of code elements related to said application; gathering and storing tracer data for the plurality of code elements, the tracer data comprising; performance data for one or more of the identified plurality of code elements; and relationship data for one or more of the identified plurality of code elements; based on the stored tracer data, generating a network representation for the plurality of code elements, the network representation comprising; nodes representing code elements; and edges that connect the plurality of nodes in various ways, the edges representing relationships between connected code elements; analyzing said network representation and identifying as a result of the analysis one or more node patterns of a set of pre-determined node patterns in which at least three or more code elements interact with one another, and wherein the identified patterns indicate specific classifications for constituent code elements of the identified node patterns, and wherein the specific classification indicates which of various optimization algorithms to apply to a given code element of interest; applying the indicated algorithms to each respective code element of interest to generate a runtime configuration that applies runtime settings to the code elements; storing the runtime configuration; and using the runtime configuration for the application when running the application in a runtime environment. - View Dependent Claims (24, 25, 26, 27, 28, 29, 30, 31, 32)
-
Specification