我有一个C ++代码,想对其进行分析。我正在使用Visual Studio 2017分析器。但是,如何解释“总CPU”和“自CPU”的结果?我有一个功能非常高的“ Self CPU”。该功能的“ Self CPU”值也等于“ Total CPU”。这是什么意思?在特定功能中找到性能瓶颈的下一步是什么?
答案 0 :(得分:0)
通常,总CPU指示该功能花费的总时间。在使用自CPU时,不花费在可能调用的其他功能上的时间。
假设您有一个函数f()
,它调用了另外两个函数g()
和h()
。
void f(){
...
g();
h();
...
}
您将拥有total-CPU(f)=self-CPU(f)+total-CPU(g)+total-CPU(h)
(如果在程序的其他位置未使用g
和h
)。
如果f
,total-CPU(f)=self-CPU(f)
中没有函数调用
在您的特定情况下,如果您具有一个具有较高的自CPU和total-CPU == self-CPU的功能,则可能意味着此功能是您的瓶颈之一。