- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
public static bool IsPositiveInfinity(double d)
{
//Jit will generate inlineable code with this
if (d == double.PositiveInfinity)
{
return true;
}
else
{
return false;
}
}
http://govnokod.ru/22608#comment377918
Где мой пирожок?
Если же записать короче, вот так, например:
То компилятор сгенерирует более короткий код:
Неужели первый вариант лучше?
Зачем безусловный переход на следующую команду?
Но не я
Из кода с одним ретурном и без ифа (return (d == double.PositiveInfinity);) получилось это:
И правда, плохой код лучше оптимизируется JIT'ом, чем хороший.
После оптимизации (ключ /o+) этот кусок вырезается. Первый вариант:
Второй вариант:
if из приведённого говнокода не вырезается даже оптимизатором.