TGViewer
C# Short Posts 🔞 C# Short Posts 🔞 @dimasshortposts · 309 subscribers
Post #122 158
🌴 Pattern Matching 2: Паттерн-матчинг и тайны перфоманса.

Так, вроде докопался до сути. Если просто прикопать персону var personCopy = person;

[Benchmark]
public bool SimpleCodeScenario()
{
var personCopy = person;
return personCopy != null && personCopy.Name != null && personCopy.Age < 9;
}


То ничего не изменится. Но если добавить каст к объекту, то производительность выправится

[Benchmark]
public bool SimpleCodeScenarioWithCast()
{
var personCopy = person;
return
(object)personCopy != null && personCopy.Name != null && personCopy.Age < 9;
}


🅰️А если долго смореть IL код, то (IL код начнет смотреть в ответ) можно увидеть, что вот такой вариант, приведением к объекту приводит к тому, что объект person кладется на стек всего один раз, а в случае с отсутствием такого каста, при каждой проверке условия объект будет класться на стек заново. То есть в первом случае его положат на стек аж три раза, а во втором случае всего один.

Дело раскрыто, ducktective Димас удоляется на выходные. 🦆

P.S.: И, да, какой же топовый инструмент sharplab.io! Без него в таком душном деле, как без рук. Всем советую.
#бенчмарки
  • 🎉 2
  • 👍 1
  • 🤩 1
  • 🌚 1
More from @dimasshortposts
  1. Oct 2, 2026s
  2. Oct 2, 2026Post #503
  3. Sep 30, 2026🛤 Путь до Tier1: от чего он зависит В прошлый раз мы гоняли hello world в цикле и увидели…
  4. Sep 26, 2026🧵 Тредик для вопросов по докладу про MAF на дотнексте В докладе многие подробности опусти…
  5. Sep 23, 2026Даже самым хардкорным ребятам надо отдыхать, так что отдыхаем, мои чюваки 🕺 🧑‍💻dp🥁 #he…
  6. Sep 16, 2026🎯 Instrumented Tier0: профилирование кода В прошлый раз мы разобрали два уровня компиляци…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →