Fault tolerant compilation with automatic optimization adjustment
US-9207921-B2 · Dec 8, 2015 · US
US9009680B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9009680-B2 |
| Application number | US-61205806-A |
| Country | US |
| Kind code | B2 |
| Filing date | Dec 18, 2006 |
| Priority date | Nov 30, 2006 |
| Publication date | Apr 14, 2015 |
| Grant date | Apr 14, 2015 |
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.
Instrumentation points are selected for an application by running the application with comprehensive instrumentation of its components in a development mode. The application can be run by a human operator and/or load simulator which provides requests to the application. The instrumented components are monitored as the application runs. A subset of the components is selected based on criteria such as an order in which the instrumented components are invoked, whether resource utilization, such as consumption of processor cycles, exceeds a threshold, or a frequency with which components are called or call other components, and only that subset is instrumented in a production mode of the application. In one approach, the subset includes components which are invoked when traffic to/from the application matches a pattern provided by an interaction model. As a result, relevant instrumentation points can be identified.
Opening claim text (preview).
What is claimed is: 1. A computer-implemented method for selecting instrumentation points for an application, comprising: performing a static analysis of components of an application, the performing the static analysis comprises determining which of the components are worthy of instrumenting, the determining which of the components are worthy of instrumenting comprises determining which of the components are of at least one specific type which is of interest; instrumenting the components which are determined to be worthy of instrumenting based on the static analysis to provide a first set of components, each component of the first set of components is instrumented with a probe which is initially made active so that the probe will be tripped and send component data to an agent when the component of the first set of components is invoked; in one iteration of a filtering process: running the application with the first set of components while monitoring the first set of components based on probes of the first set of components, based on the monitoring of the first set of components, for each component of the first set of components: assigning a first score based on a first selection criterion, assigning a second score based on a second selection criterion, and providing a total score based on the first score and the second score and based on the total scores, distinguishing a first subset of components of the first set of components for which active instrumentation is to be maintained from a second subset of components of the first set of components for which active instrumentation is not to be maintained; and in another iteration of the filtering process: running the application with the first subset of components while keeping probes for the first subset of components active and making probes for the second subset of components inactive, where the probes for the second subset of components remain in the application, and do not send component data to an agent, in the another iteration, and while monitoring the first subset of components based on the probes of the components of the first set of components, based on the monitoring the first subset of components, assessing the first subset of components using another selection criterion, and based on the assessing the first subset of components, distinguishing a subset of the first subset of components for which active instrumentation is to be maintained in subsequent running of the application from a subset of the first subset of components for which active instrumentation is not to be maintained in the subsequent running of the application. 2. The computer-implemented method of claim 1 , wherein: the distinguishing during the one iteration comprises parsing HyperText Transport Protocol (HTTP) requests to the application to obtain parameters of the HTTP requests, comparing the parameters of the HTTP requests to at least one pattern associated with an interaction model for the application to determine at least one of the HTTP requests which corresponds to the at least one pattern associated with the interaction model for the application, and selecting the first subset of components by selecting components of the first set of components which are invoked by the at least one of the HTTP requests. 3. The computer-implemented method of claim 1 , wherein: the distinguishing during the one iteration comprises selecting the first subset of components by selecting components of the first set of components based on an order in which the components of the first set of components are invoked during the running of the application with the first set of components. 4. The computer-implemented method of claim 1 , wherein: the distinguishing during the one iteration comprises selecting the first subset of components by selecting components of the first set of components for which a resource utilization exceeds a threshold during the running of the application with the first set of components. 5. The computer-implemented method of claim 1 , wherein: the distinguishing during the one iteration comprises selecting the first subset of components by selecting components of the first set of components for which at least one of a consumption of processor cycles or an execution time exceeds a threshold during the running of the application with the first set of components. 6. The computer-implemented method of claim 1 , further comprising: determining an instrumentation overhead of each component of the first set of components during the running of the application with the first set of components, based on a ratio of central processing unit (CPU) cycles consumed by instrumentation of each component of the first set of components to CPU cycles consumed when each component of the first set of components is invoked, the distinguishing during the one iteration comprises selecting the first subset of components by selecting components of the first set of components for which the instrumentation overhead is determined to be below a threshold. 7. The computer-implemented method of claim 1 , wherein: the distinguishing during the one iteration comprises selecting the first subset of components by selecting components of the first set of components which are called with a frequency above an associated threshold during the running of the application with the first set of components. 8. The computer-implemented method of claim 1 , wherein: the distinguishing during the one iteration comprises selecting the first subset of components by selecting components of the first set of components which are called by a number of other components which exceeds an associated threshold during the running of the application with the first set of components. 9. The computer-implemented method of claim 1 , wherein: the distinguishing during the one iteration comprises selecting the first subset of components by selecting components of the first set of components for which a number of multiple instances which exceeds a threshold are in use simultaneously during the running of the application with the first set of components. 10. The computer-implemented method of claim 1 , wherein: the distinguishing during the one iteration comprises selecting the first subset of components by selecting components of the first set of components which at least one of: provide an entry point into another component, make method calls to other components or have a length which exceeds a length threshold. 11. The computer-implemented method of claim 1 , wherein: the distinguishing during the one iteration comprises selecting the first subset of components by selecting components of the first set of components which have a variance in execution time which exceeds a threshold during the running of the application with the first set of components. 12. The computer-implemented method of claim 1 , wherein: the distinguishing during the one iteration comprises selecting the first subset of components by determining which of the components of the first set of components is first invoked when processing a request during the running of the application with the first set of components, the first subset of components including the component of the first set of components which is first invoked. 13. The computer-implemented method of claim 1 , wherein: the distinguishing during the one iteration comprises selecting the first subset of components by determining which of the components of the first set of components is last invoked when processing a request during the running of the application with the first set of components, the first subset of components including the c
by runtime analysis (performance monitoring G06F11/3466) · CPC title
by performing operations on the source code, e.g. via a compiler · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.