探查器的用法以及如何利用结果

时间:2019-01-26 22:29:19

标签: visual-studio profiling performance-testing

我有一个C ++代码,想对其进行分析。我正在使用Visual Studio 2017分析器。但是,如何解释“总CPU”和“自CPU”的结果?我有一个功能非常高的“ Self CPU”。该功能的“ Self CPU”值也等于“ Total CPU”。这是什么意思?在特定功能中找到性能瓶颈的下一步是什么?

1 个答案:

答案 0 :(得分:0)

通常,总CPU指示该功能花费的总时间。在使用自CPU时,不花费在可能调用的其他功能上的时间。

假设您有一个函数f(),它调用了另外两个函数g()h()

void f(){
   ...
   g();
   h();
   ...
}

您将拥有total-CPU(f)=self-CPU(f)+total-CPU(g)+total-CPU(h)(如果在程序的其他位置未使用gh)。

如果ftotal-CPU(f)=self-CPU(f)中没有函数调用

在您的特定情况下,如果您具有一个具有较高的自CPU和total-CPU == self-CPU的功能,则可能意味着此功能是您的瓶颈之一。