在时间紧迫的过程中,我尝试避免引入分支,但有时候没有实用的方法。
在这些情况下,测试特定条件的不同方法之间是否存在性能差异?建议测试最可能的结果,还是没有区别?即有没有不同的重量'在CPU或编译器体系结构中的TRUE和FALSE条件之间?
E.g。以下三个片段之间通常会有区别:
// snippet 1: test for exception first
if ( !likely_to_happen ) {
foo();
} else {
bar();
}
// snippet 2: test for most common cases first
if ( likely_to_happen ) {
bar();
} else {
foo();
}
// snippet 3: test for exception in an alternative way
if ( not_likely_to_happen) {
foo();
} else {
bar();
}