- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 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;
}
}
dm_fomenok 18.03.2017 14:15 # 0
ASD_77 18.03.2017 15:20 # −1
inkanus-gray 18.03.2017 17:57 # 0
http://govnokod.ru/22608#comment377918
Где мой пирожок?
gabop 18.03.2017 22:23 # 0
barop 18.03.2017 23:00 # 0
inkanus-gray 18.03.2017 15:36 # 0
Если же записать короче, вот так, например:
То компилятор сгенерирует более короткий код:
Неужели первый вариант лучше?
dm_fomenok 18.03.2017 15:38 # +1
Зачем безусловный переход на следующую команду?
ASD_77 18.03.2017 15:52 # +1
dm_fomenok 18.03.2017 16:26 # 0
Но не я
inkanus-gray 18.03.2017 17:49 # 0
Из кода с одним ретурном и без ифа (return (d == double.PositiveInfinity);) получилось это:
И правда, плохой код лучше оптимизируется JIT'ом, чем хороший.
barop 18.03.2017 20:31 # 0
barop 18.03.2017 20:50 # 0
barop 18.03.2017 20:50 # 0
inkanus-gray 18.03.2017 15:53 # 0
После оптимизации (ключ /o+) этот кусок вырезается. Первый вариант:
Второй вариант:
if из приведённого говнокода не вырезается даже оптимизатором.
gabop 18.03.2017 21:20 # 0
gabop 18.03.2017 21:20 # 0