Олег Шелаев — Компилируем Java ahead of time с GraalVM
Ближайшая конференция: Joker 2023, 9–10 октября (Online), 13–14 октября (Offline, Санкт-Петербург)
Подробности и билеты: https://bit.ly/3UAk3V4
— —
. . . . Знаток рантаймов VM и один из немногих, кто может понятно и просто на русском языке объяснить сложные вещи о рантаймах. В частности, Олег из первых рук рассказывает об устройстве GraalVM — именно о ней и будет этот доклад, о том, как писать современный код на Java, не теряя производительности на абстракциях.
GraalVM — высокоэффективная виртуальная машина для разных языков программирования, поддерживающая многие популярные языки: Java, Kotlin, Scala, JavaScript, Python, Ruby, R и даже С и С++ и им подобные. Интересной особенностью GraalVM является способность компилировать JVM bytecode в машинный код ahead-of-time, создавая образы обычных Java-программ, которые не зависят от JVM, запускаются в миллисекундные сроки и требуют для работы меньше памяти. Для этого используется специальная виртуальная машина — SubstrateVM, написанная на Java и предлагающая собственные имплементации для сборки мусора, кэша кода, управление потоками и прочие компоненты JVM.
Мы поговорим об устройстве SubstrateVM, особенности подхода к компиляции кода и его ограничениях. Посмотрим на внутренний анализ Java-программ и на то, что именно происходит на этапе создания образа (тут возникнут смешанные чувства к статическим инициализаторам в коде и библиотекам, которые редко обновляются). Выясним, как и почему нужно конфигурировать использование Reflection API, доступ к файлам ресурсов, JNI, Unsafe и прочие житейские мелочи нормальных Java-приложений. На практике покажем, как применить profile-guided-optimizations для создания быстрых образов, не теряющих информацию о потенциальном профиле использования кода. Поговорим, какие программы имеет смысл компилировать ahead-of-time, посмотрим на примеры приложений, которые уже работают, и характеристики их производительности.
P. S. В ассемблер смотреть не будем, ну разве что чисто для галочки.
Видео Олег Шелаев — Компилируем Java ahead of time с GraalVM канала JPoint, Joker и JUG ru
Подробности и билеты: https://bit.ly/3UAk3V4
— —
. . . . Знаток рантаймов VM и один из немногих, кто может понятно и просто на русском языке объяснить сложные вещи о рантаймах. В частности, Олег из первых рук рассказывает об устройстве GraalVM — именно о ней и будет этот доклад, о том, как писать современный код на Java, не теряя производительности на абстракциях.
GraalVM — высокоэффективная виртуальная машина для разных языков программирования, поддерживающая многие популярные языки: Java, Kotlin, Scala, JavaScript, Python, Ruby, R и даже С и С++ и им подобные. Интересной особенностью GraalVM является способность компилировать JVM bytecode в машинный код ahead-of-time, создавая образы обычных Java-программ, которые не зависят от JVM, запускаются в миллисекундные сроки и требуют для работы меньше памяти. Для этого используется специальная виртуальная машина — SubstrateVM, написанная на Java и предлагающая собственные имплементации для сборки мусора, кэша кода, управление потоками и прочие компоненты JVM.
Мы поговорим об устройстве SubstrateVM, особенности подхода к компиляции кода и его ограничениях. Посмотрим на внутренний анализ Java-программ и на то, что именно происходит на этапе создания образа (тут возникнут смешанные чувства к статическим инициализаторам в коде и библиотекам, которые редко обновляются). Выясним, как и почему нужно конфигурировать использование Reflection API, доступ к файлам ресурсов, JNI, Unsafe и прочие житейские мелочи нормальных Java-приложений. На практике покажем, как применить profile-guided-optimizations для создания быстрых образов, не теряющих информацию о потенциальном профиле использования кода. Поговорим, какие программы имеет смысл компилировать ahead-of-time, посмотрим на примеры приложений, которые уже работают, и характеристики их производительности.
P. S. В ассемблер смотреть не будем, ну разве что чисто для галочки.
Видео Олег Шелаев — Компилируем Java ahead of time с GraalVM канала JPoint, Joker и JUG ru
Показать
Комментарии отсутствуют
Информация о видео
Другие видео канала
Максим Бартков — Сложный Rate-Limiting — это просто с Bucket4jА. Гончарук (Querify Labs) — Composable systems: Как быстро писать эффективные базы данных на JavaАндрей Паньгин, Леонид Талалаев, Артем Дроздов — Непрерывное профилирование в облаке с помощью eBPFЧашка кофе с JPoint: интервью с Дмитрием ЧуйкоВладимир Ситников, Алексей Стукалов — Разбор доклада Ted Neward «Iconoclasm»Антон Котов — Почему мы решили переходить на R2DBC и чем это закончилосьДмитрий Чуйко — Не клади все яйца в один билдпакJosh Long — Bootiful Spring GraphQLАхтям Сакаев — DDDamn good!Александр Нозик — Архитектура математических вычислений на KotlinAndres Almiray — JReleaser — releasing at the speed of lightАлександр Коженков — Масштабируем Spring Boot микросервисыАндрей Беляев — JPA-паззлеры (+Hibernate и Spring)Паша Финкельштейн — Магия Spark: Как высокоуровневые конвейеры становятся распределенным хардкоромЛеонид Старцев — Как эволюционировать свою библиотеку на Kotlin безболезненно для клиентовGeoffrey De Smet — AI maintenance scheduling with OptaPlanner on QuarkusНикита Поваров, Роман Поборчий — Самопишущийся кодДмитрий Константинов — Apache Cassandra — потоки и памятьЕвгений Мандриков — Decomposing ComposeSteve Poole — Practical steps for creating safer software (Code included)Закрытие конференции Joker 2021