TGViewer
Библиотека шарписта | C#, F#, .NET, ASP.NET Библиотека шарписта | C#, F#, .NET, ASP.NET @csharpproglib · 21.7K subscribers
Post #6875 3.76K
🤩 JIT-оптимизации в новом .NET Preview: что улучшилось

Несколько тихих, но полезных улучшений в JIT-компиляторе, которые влияют на производительность без изменений в коде.

Устранение проверок границ для паттерна i + cns < len

JIT теперь убирает лишние bounds check в типичном сценарии, когда индекс плюс константа сравниваются с длиной массива. Такой паттерн встречается в парсерах, обработке буферов, посимвольном разборе строк. Раньше каждая такая проверка генерировала лишние инструкции в рантайме.

Удаление избыточных checked-контекстов

Если JIT может доказать, что значение уже находится в допустимом диапазоне, он теперь выбрасывает проверку переполнения как ненужную.

Это касается арифметики в checked-блоках, где компилятор раньше перестраховывался даже там, где переполнение было физически невозможно.

Девиртуализация generic-виртуальных методов в R2R

ReadyToRun-образы теперь умеют девиртуализировать несовместно используемые generic virtual method calls. Это означает, что AOT-скомпилированный код получает те же оптимизации прямых вызовов, которые раньше были доступны только в JIT-режиме.

SVE2-интринсики для ARM

Добавлены новые интринсики ShiftRightLogicalNarrowingSaturate(Even|Odd) для архитектур с поддержкой SVE2. Требуют и поддержки в JIT, и соответствующего API. Полезно для векторных вычислений на серверном ARM-железе вроде Graviton или Neoverse.

Все четыре изменения работают автоматически при обновлении рантайма. Ничего менять в коде не нужно.

📍 Навигация: Вакансии • Задачи • Собесы

🐸 Библиотека шарписта

#sharp_view
  • 👍 5
  • ❤ 2
More from @csharpproglib
  1. Sep 26, 2026📍 Навигация: Вакансии • Задачи • Собесы 🐸 Библиотека шарписта #garbage_collector
  2. Sep 25, 2026🔐 NuGet: Microsoft меняет сертификат подписи С 23 сентября Microsoft использует новый сер…
  3. Sep 24, 2026🤩 Как поймать зависший .NET-сервис Приложение начинает тормозить, запросы зависают, а в л…
  4. Sep 23, 2026⚙️ yield return не бесплатный Итераторы выглядят просто, но работают иначе: IEnumerable<in…
  5. Sep 22, 2026💡 Replace, Regex или StringBuilder? Для замены текста в C# есть несколько инструментов. И…
  6. Sep 21, 2026⚙️ Настоящие атомарные операции Если Volatile решает проблему видимости, то Interlocked ре…
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 →