To understand how your application call tree has changed after your optimization and see the difference in performance metrics per function and its callees, click the Top-down Tree sub-tab and explore the Top-down Tree window.
In the compare mode, the Top-down Tree window shows the data columns of the two results and a new column showing the difference between the two results for each program unit. The difference is calculated as <Result 1 Value> - <Result 2 Value>.
The Top-down Tree window in the compare mode supports two types of grouping levels:
Function Stack granularity groups the data by function instances. Use the Start Address column to identify different instances of the same source function or same loop.
Source Function Stack granularity groups the data by source functions. In this mode, all instances of the same source function are aggregated into one function.
Example: Comparison for Hotspots Analysis Results
The function foo() is called from two places in your application, bar1() and bar2(). If you see that foo() became slower in result 2, use the Top-down Tree window (compare mode) to check whether it became slower when being called by bar1(), by bar2(), or both.
To compare results with stacks and without stacks, switch the Call Stack Mode filterbar option to User/System functions to attribute performance data to functions where samples occurred.