Доклад

JIT не волшебство: как он работает и как не мешать

На русском языке

JIT-компилятор в .NET — это сложный и постоянно развивающийся механизм, от которого напрямую зависит производительность кода. Он умеет многое: от inlining и удаления проверок границ до escape-анализа и стекового размещения объектов. Но чтобы эти оптимизации сработали, иногда недостаточно просто написать «рабочий» код.

В докладе мы:

  • посмотрим путь развития JIT-компилятора за последние годы;
  • разберем, как устроены ключевые оптимизации на уровне алгоритмов, и немного заглянем в исходники;
  • обсудим, как особенности кода могут ограничивать JIT (например, использование is T, не sealed-классов и shared generics) и почему обновление .NET-версии часто напрямую влияет на производительность — ведь с каждым релизом JIT учится обрабатывать всё более сложные конструкции;
  • увидим, как управлять этими ограничениями системно — через архитектурные решения и правила статического анализа;
  • поговорим, в каких ситуациях имеет смысл «помогать» JIT — особенно если вы пишете высоконагруженные или критичные к производительности участки системы.

Спикеры

Доклады