В .NET JIT-компилятор делает огромное количество работы, чтобы ускорить ваш код: от инлайна и векторизации до escape-анализов и динамического профилирования. Но знаете ли вы, что невинная строчка is T или не sealed-класс могут запретить JIT делать свою магию?
На докладе мы подробно разберём, как работает JIT в .NET, какие оптимизации реально происходят, как мы, разработчики, можем им мешать — или наоборот помогать, и почему это важно для бизнеса и пользователей.
Сессия будет полезна как инженерам, стремящимся понимать внутренности .NET и писать эффективный код, так и тимлидам и архитекторам, выстраивающим инженерную культуру: ведь понимание того, что реально делает JIT, позволяет оптимизировать не вручную, а системно.
Ключевые темы:
- Tiered Compilation: Tier 0 против Tier 1
- PGO (Profile-Guided Optimization), OSR (On-Stack Replacement)
- Инлайнинг, деинлайнинг, развёртка циклов, SIMD
- Devirtualization, sealed, boxing
- Что нового в .NET 6, 7, 8, 9 для JIT
- Roslyn-анализаторы, помогающие писать JIT-friendly код
Целевая аудитория:
Разработчики уровня Middle и выше, технические лиды, архитекторы, преподаватели и инженеры, которым интересно, что происходит под капотом C# и почему код иногда «не летит»