vtune 测量中的函数 CPU 时间可加性

Function CPU time additivity in the vtune measurements

假设我有以下调用结构:

funcA() -> funcB() -> funcC()

funcB() -> funcC(), funcD()

在 VTune 结果(uarch-exploration with hotspots 结果)中,显示了各个函数的 CPU 次。我的问题是 cpu 时间是否在本质上是“累加”的?即results中A的时间也包括了第一行B和C的执行时间,还有results中B的时间是否也包括了第二行C和D的执行时间?

如果不是,请确认热点分析是否报告了B的执行时间=第一行B的执行时间+第二行B的执行时间?

Intel VTune、Intel Advisor 和其他一些分析器(例如 Crhome 分析器)报告包含(包括 B、C、D)和排除(A,B、C、D 除外,因此是附加的)时间指标。 包含称为“Total-Time”,独占称为“Self-Time”。 阅读更多:https://software.intel.com/content/www/us/en/develop/documentation/vtune-help/top/reference/cpu-metrics-reference/self-time-and-total-time.html