如果在 C++ 中,如何分析

Posted

技术标签:

【中文标题】如果在 C++ 中,如何分析【英文标题】:How to profile if in C++ 【发布时间】:2016-07-21 15:21:32 【问题描述】:

是否有工具可以知道我的正确次数和错误次数

例如:

if (vector.size() == 1)
    return;
do_something();

如果这个是真的,怎么知道多少次?

【问题讨论】:

为每个分支添加计数? TotalCount = TrueCount + FalseCount 要求推荐工具的问题在 SO 中是题外话。这样的工具有很多(也可以使用内嵌代码) 【参考方案1】:

如果这段代码在函数内部,你可以使用静态变量:

void function()

    static int cptTrue;
    static int cptFalse;

    if (vector.size() == 1)
        cptTrue++;
        return;
    
    cptFalse++;
    do_something();

【讨论】:

【参考方案2】:

对于 Windows,有一个工具可以显示函数被调用的频率。从库到函数和行构建了一个树,它显示了 cpu 使用百分比。但是,如果您想确切知道一条线路被调用了多少次,最好的方法是按照 baddger964 的建议手动计算它们。

very sleepy

【讨论】:

有很多代码覆盖率工具可以告诉你每行执行了多少次(甚至是否采用了分支)。

以上是关于如果在 C++ 中,如何分析的主要内容,如果未能解决你的问题,请参考以下文章

C++ 库名称中的“f”后缀是啥意思,如何加载它?

如何在我自己的代码中使用 Visual C++ 在不运行静态代码分析的情况下导致 SAL 编译器警告

如何在 Visual Studio (C++) 中设置发布分析

我应该如何分析visual c++ express?

如何分析 Rcpp 代码(在 linux 上)

如何分析在 Windows 上运行的 C++ 代码?