Intel® VTune™can calculate analysis-independent time spent within particular procedures and functions and within children (callees). This is the information for Self and Total time, respectively. The
Bottom-upwindow shows only Self time. The
Top-down Treewindow and
Assemblywindow show Self time and Total time.
Self time is the time spent in a particular program unit. For example, Self time for a source line shows the time the application spent at this particular source line. Self time can help you understand the impact that a function has on the program. Investigating the impact of single functions is also known as bottom-up analysis.
For example, in a single-threaded program with negligible Wait time, the Self time for the function
foo()is 10% of the program CPU time. If you optimize
foo()so that it is twice as fast, the Elapsed time for the program improves by 5%.
The impact of Self time on the Elapsed time of a parallel application depends on the utilization of different threads. Reducing the time that a given function runs to zero may have no impact on the Elapsed time of the application
Total time is the accumulated time that a program unit incurs. For functions, Total time includes Self time of the function itself and Self time of all functions that were called from that function. Total time enables a high-level understanding of how time is spent in the application. Investigating the impact of functions together with their callees is also known as top-down analysis.