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