The AppMon Session Comparison feature makes it possible to compare the results of diagnostic analyses on two PurePath sessions. The information gained by these analyses, however, can hide details that are only visible in the PurePaths themselves. It therefore can be necessary to compare PurePaths on a call-by-call level. The PurePath Comparison dashlet automates and eases the structural comparison of two PurePaths.
The PurePath Comparison dashlet can be added to a dashboard and customized like the PurePaths dashlet.
Hold down the Ctrl key and select any two PurePaths in the PurePath tab to display their details, in the order selected, in the Main PurePath and Compare PurePath panes. When just two PurePaths are available, they are selected and compared automatically.
At the top of each pane is a modified Hotspots visualization. This visualization is extended to include the path structure and call hierarchy, two key metrics for the structural comparison of two PurePaths. Below the visualization is a table that lists the detailed metrics.
You can configure a comparison data source, to compare PurePaths from different input sources. The PurePaths from the comparison data source are displayed in a second table next to the table for the main data source. You do not have to hold down the Ctrl key to select comparison PurePaths from different data sources.
The following figure shows one of the two panes that display the PurePath details. The label at the top identifies the selected PurePath. On the left side of the HotSpots view, the Structure chart (in blue) visualizes the bounds of the various threads and tiers of which this PurePath is composed. The Call Hierarchy chart shows the depth of the contributing method calls within their invocation trace. The table at the bottom is equivalent to the tree visualization in the PurePaths dashlet. It lists all available metrics for the selected PurePath.
When two PurePaths are loaded in the comparison panes, their details line up to give a general impression of their similarity or differences. You can trigger the automated comparison by clicking the Compare button located between the two slots, or by switching to either the Structure Comparison or the Timing Comparison tab. As the call-by-call comparison can be time consuming, you can use the progress dialog box to cancel the task.
After a successful comparison, the details are updated and detected differences are highlighted in red. Matching method calls are linked to each other: clicking one call automatically browses to the corresponding call. The call's metrics are extended with hints about the similarity between their values. Any drilldown that is triggered from the details yields a differential drilldown with the Main PurePath as the main data source and the Compare PurePath as the comparison data source.
The Structure Comparison and Timing Comparison tabs offer an alternative representation of the comparison results. By focusing on the detected differences, they call attention to potential points of interest. Especially when the compared PurePaths are large and also very similar, this information can reduce the effort necessary to browse the ample detail data.
Clicking an entry in Structure Comparison and Timing Comparison selects the corresponding call in the details pane. The reported modifications are always relative to the Main PurePath.
The PurePath Comparison dashlet executes a call-by-call comparison of two selected PurePaths to detect structural and timing differences. This implies looking at every method call of the PurePaths in question individually, instead of basing the results on aggregated data. Thus, the time necessary to compare the two PurePaths depends greatly on their size, ranging from instant for small PurePaths (fewer than 1000 nodes) up to a minute for larger PurePaths (more than 10,000 nodes). Another factor is the degree of structural similarity between the two PurePaths; identical PurePaths are processed much faster than completely different ones.
The comparison happens on the Client, with no impact on the Server other than requesting the data for the two PurePaths.
Differential PurePath metrics
When comparison results are available, the regular PurePath method call metrics are extended to reflect the difference to their counterparts. These extended metrics are only available for matching method calls. Two method calls match if their fully qualified class and method names match.
For all timing measurements such as Total, Execution, and CPU the following data displays:
value ( percentage % )
percentage = ( difference / other ) * 100
difference = value ‐ other
For all captured strings such as Arguments, Return values, and Thread names
value when identical, otherwise
value ( other ).
Invoking the comparison from other dashlets
Like most other diagnostic dashlets, the PurePath Comparison dashlet can be the target of a drilldown. When the data set has been refined to contain just two PurePaths, the comparison is triggered automatically.
In the PurePaths dashlet, two options are available on the context menu to select two PurePaths and send them to the PurePath Comparison dashlet.