Языку Java присущ встроенный динамизм.
Reflection, динамическая загрузка — это то, без чего современные Java приложения просто не могут существовать, поэтому существует мнение, что AOT (статическая) компиляция вряд ли применима к Java в общем случае, а там где применима не может составить конкуренцию JIT (динамической) компиляции в плане прозводительности.
В этом докладе мы разберемся, почему это не (совсем) так, при этом рассмотрим случаи,
где у статических компиляторов действительно есть определенные сложности в обработке динамической семантики Java.
Также поговорим о том, где статическая компиляции для Java может быть полезна.
План доклада:
- Мифы вокруг статической компиляции Java
- Java AOT Challenges
- Применение AOT для ускорения startup, защиты приложений от декомпиляции.
- Производительность. Какие есть преимущества у JIT и AOT в плане оптимизаций Java программ перед друг другом.
- AOT в разных областях применения Java: client side, server side, embedded, IOT, mobile.