Евгений Пешков. .NET: AOT in 2022

JIT-компиляция в .NET позволяет создавать кроссплатформенные приложения и решает проблемы взаимодействия сборок в рантайме, но может негативно сказаться на производительности приложения, особенно на этапе старта, когда необходимо загрузить и скомпилировать множество методов сразу. .NET на протяжении всей своей истории имел средства для решения этой проблемы, позволяющие предкомпилировать весь или часть кода заранее. Например, Ngen в .NET Framework или CoreRT как самостоятельная платформа. В современном .NET основное средство для Ahead-of-Time compilation — это Crossgen2. К сожалению, Ahead-of-Time компиляция — далеко не серебряная пуля, а технология, несущая свои tradeoffs и не гарантирующая прирост производительности. В докладе я расскажу: какие проблемы можно попробовать решить с помощью AOT; какие средства для нативной компиляции .NET сейчас актуальны и какие ограничения они накладывают; об особенностях работы с crossgen2 — о проблемах, с которыми пришлось столкнуться; как измерить выигрыш в производительности от внедрения AOT — почему с AOT вам стоит немного подождать (.NET 7). Презентация:
Codefest:

Смотрите также