Пока искал причину, почему Expression Tree работает быстрее, решил проверить, а что быстрее pattern matching выражения или обычные операторы сравнения?
🅰️ И офигеть, но pattern matching выражения реально быстрее! То есть все эти подсказочки райдера, это еще и нехилая такая оптимизация, а не просто синтаксический опиум для народа!
[Benchmark]
public bool SimpleCodeScenario()
{
return person != null && person.Name !=null && person.Age < 9;
}
[Benchmark]
public bool PatternMatchingExpressionScenario()
{
return person is {Name: {} , Age : < 9 };
}Вышли вот такие данные:
SimpleCodeScenario 2.5764 ns
PatternMatchingExpressionScenario 0.2032 ns
Кто-то, конечно, скажет, что это всего две наносекунды, но разница в 10 раз – это разница в 10 раз.
#бенчмарки