我想计算小表达式的性能,以决定使用什么。考虑下面的代码。可能会发生多次递归调用。
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/