В C при компиляции на машину x86 я обычно заменял ветки логическим выражением, когда скорость наиболее высока. важный аспект, даже если условия сложные, например, вместо
char isSomething() {
if (complexExpression01) {
if (complexExpression02) {
if(!complexExpression03) {
return 1;
}
}
}
return 0;
}
я напишу:
char isSomething() {
return complexExpression01 &&
complexExpression02 &&
!complexExpression03 ;
}
Теперь ясно, что это может быть труднее в обслуживании и менее читаемый код, но на самом деле он может быть быстрее.
Есть ли причина действовать таким же образом при работе с управляемым кодом, например с C #? Дорогие ли «скачки» в управляемом коде по сравнению с неуправляемым кодом (по крайней мере, на x86)?