所以,兩種情況:函數調用的代價是多少?
案例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