我想确定小表情的表现,以决定使用什么。考虑下面的代码。可能会发生几次递归调用。如何判断小表情的表现?
void foo(void) {
i++;
if(etc(ch)) {
//..
}
else if(ch == TOKX) {
p=1;
baa();
c=0;
p=0;
}
//more ifs
}
问:
Recursives呼叫可能发生foo()
,且仅当p
具有非零值i
应该增加(这意味着它会在代码的其他部分使用),我应该把一个if(p) i++;
或只离开i++;
?
是回答(我)像这样的问题,我正在寻找一些工具。有人可以相信它是“失去时间”或说“优化是恶的根源”......但对于这样的情况,我不相信它适用于我的情况。恕我直言。如果您不这么想,请告诉我们您的意见。
一个“理想”的工具,可以显示多长时间每个表达式运行。
它让我想到在IBM,微软,Sun等最大的软件公司如何进行软件调试。也许这是另一个线程的主题..我认为这更有用。
平台:应该是Linux和MS-Windows。
由于它看起来像你有全局变量,你有比单个if语句的性能更大的问题... – 2013-05-04 18:04:59
@R ..:谢谢你的评论。但是全球变量是非常需要的。也许因为更简单。几个函数使用这个值都是递归地相互调用。通过参数传递每个副本可能会使用太多堆栈。但是因为你提到它,我会考虑检查删除全局是否会增加性能。 – Jack 2013-05-04 18:12:49
这将是“**过早**优化是万恶之源。”优化并不坏; **过早的**优化 - 意味着优化在你知道实际造成瓶颈之前完成 - 是不好的。 – 2013-05-05 02:09:23