分岐予測、およびコンパイラー最適化の影響を考えると、どのコードが優れたパフォーマンスを提供する傾向がありますか?
bRareExceptionPresentはまれな状態を表すことに注意してください。ロジックの通常のパスではありません。
/* MOST COMMON path must branch around IF clause */
bool SomeFunction(bool bRareExceptionPresent)
{
// abort before function
if(bRareExceptionPresent)
{
return false;
}
.. function primary body ..
return true;
}
/* MOST COMMON path does NOT branch */
bool SomeFunction(bool bRareExceptionPresent)
{
if(!bRareExceptionPresent)
{
.. function primary body ..
}
else
{
return false;
}
return true;
}