我想计算小表达式的性能,以决定使用什么。考虑下面的代码。可能会发生多次递归调用。

  void foo(void) {
    i++;
    if(etc(ch)) {
    //..
    }
    else if(ch == TOKX) {
        p=1;
        baa();
        c=0;
        p=0;
    }
     //more ifs
}

问题
递归调用可能会发生在foo(),只有当i具有非零值(这意味着它将在代码的其他部分中使用)时,p才应该递增,我应该放置if(p) i++;还是只保留i++;
就是回答这样的问题,我在找工具。有人会相信这是“浪费时间”,或者说“选择是罪恶的根源”。。但对于这种情况,我不认为它适用于我的情况。伊姆霍。如果你不这么认为,请告诉我们你的意见。
一个“理想”的工具,可以显示每个表达式运行的时间。
这让我想到,在IBM、微软、Sun等大型软件公司,软件调试是如何进行的。也许这是另一个主题。。我觉得这更有用。
平台:应该是Linux和MS Windows。

最佳答案

老话是这样说的:“不要优化,直到你确定,绝对肯定,你需要”。。这是有原因的。
也就是说,这里有一些想法:
尽可能避免递归
在宏级别,类似于linux中的“time”命令可以告诉您应用程序的运行时间。把这个方法放在一个循环中,运行10公里,然后测量它,以平均出数字
如果要测量在单个函数中花费的时间,则需要分析。Visual Studio在Windows中有一些很好的内置功能,但是有很多选择。
http://en.wikipedia.org/wiki/List_of_performance_analysis_tools

关于c - 如何计算小表情的表现?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16377250/

10-10 03:14