The workstation allows you to browse all the collected data. In order to browse the data, you need to fill out the form below.
For quick browsing, you only need to select the application and the time range. Optionally, you can select the Advanced search option and fill out the additional form. The Parameters section allows narrowing your search by specifying two additional fields. In the KEY field, you must specify an exact key name for the parameters. In the VALUE field, you must specify a phrase to search for. How the phrase will be matched depends on the option selected below the field. If you select the contains option, only those methods will be returned, which parameters' value contains the phrase. If you select the exact option, only those methods will be returned, which parameters value equal to the phrase. If you select the starts with option, only those methods will be returned, which parameters value starts with the phrase. Finally, if you select the regex option, the phrase will be regarded as a regular expression and only those methods will be returned, which parameters value match the regular expression.
By default, the search is performed only through entry points. If you want to search through every invocation, you need to select the Deep search option.
Although the search can be performed in each invocation, the result will contain only entry points.
When you click the Search button, you will get a similar view to the one below.
The search results are displayed in a form of a list. When you click an entry point from the list, and the entry point has parameters, they will be displayed in detail in the right list view. If you want to see the execution tree of the selected entry point, you need to double-click the corresponding record.
Each record in the result list represents an entry point.
Each record contains the following information:
- method name along with its signature
- fully qualified class name the method comes from
- thread name the method was executed in
- method execution time (duration)
- CPU time usage of the method execution
- date the method was executed
- time the method was executed at
- invocations count of the corresponding execution tree
- exceptions count in the corresponding execution tree
When you double click some selected record, you will get a view with the record details. The view shows a tree representing an execution stack of the selected method call. This tree view is self-explanatory but there can be situations where this view can be a bit confusing. This can happen when the displayed execution stack does not exactly correspond to the execution flow you see in your application source code. In order to understand why this situation takes place, you must understand how the execution stack tree is built.
Each element in the tree denotes some method invocation. The elements contain a method signature and its owner class, and parameters if there are any. If the selected method has paramaters, they are displayed in the list on the right. Each element has its own options menu with the following items:
- Get Class Bytes : this action allows for downloading a class file of the selected method so that you can decompile it in any decompiler of your choice.
- Add Rule with Formatter to Profile : creates a new rule with a formatter. The create rule form is prefilled with the method and class data.
- Exclude Method from Profile : creates a new exclusion rule, which makes the method excluded from instrumentation.
- Exclude Class from Profile : creates a new exclusion rule, which makes the class excluded from instrumentation.
There are three available views of the execution tree. The view is changed by selecting one of the VIEW options:
- complete : no method is filtered out (default). A complete tree is presented,
- critical : filters out all methods but the one with the biggest duration value at any branch,
- exceptions : filters out methods, which do not have exceptions thrown within their branches.
There is a global options menu for the execution tree, which contains the following options:
- Find a Duration Gap : finds a method in the tree, which has the largest value gap between its duration and all of its methods it invokes directly.
- Expand All : expands the entire tree.
- Switch Positions Visibility : makes the method elements position data visible.
- Export to File : exports the entire tree to a file.
When you select the Spectrum tab, you will get a spectrum view. This view presents a spectrum of the execution tree, in other words, it shows a collection of all the components which constitute the tree along with their calls and exceptions statistics.
Each record in the spectrum represents a unique method, i.e. the record identifies a method by its origin class and signature. If there are multiple calls of the same method in the tree, the number of times it is executed is presented on the right of the record entry. Each record has a colored background, which represents a ratio of a number of the corresponding method executions to the total number of all calls. Each record has also a banner with a number inside. This banner presents how many exceptions is thrown by the corresponding method. If you click on the record with a number in the banner, a popup window will appear with a list of all the exceptions thrown in the represented method.