所以,两种情况:函数调用的代价是多少?
案例1:
if (doSomething) doFunction();
//...
void doFunction() {
// ... do something time consuming
}
案例2:
doFunction();
//...
void doFunction() {
if (!doSomething) return;
// ... do something time consuming
}
这是非常之内的时间敏感的环境中(大约0.1毫秒就会有很大的不同); doFunction()
经常被称为(约100次的次序),并且大多数情况下不是,doSomething
是错误的。似乎很明显,案例1会更有效率,但多少?或者它会不会有所作为(大约0.01毫秒)?
通过探查器运行,然后你会得到你的答案。 –
我希望这就是这么简单...我也想知道在这种情况下g ++可能会做什么 – polyglot
@polyglot:我用g ++试过了两种情况的非常简单的版本,结果非常相似。我怀疑它足够聪明来优化第二种情况。 – sje397