Загрузка страницы

Олег Шелаев — Компилируем 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
Показать
Комментарии отсутствуют
Введите заголовок:

Введите адрес ссылки:

Введите адрес видео с YouTube:

Зарегистрируйтесь или войдите с
Информация о видео
28 июня 2019 г. 17:03:34
01:01:02
Другие видео канала
Максим Бартков — Сложный Rate-Limiting — это просто с Bucket4jМаксим Бартков — Сложный Rate-Limiting — это просто с Bucket4jА. Гончарук (Querify Labs) — Composable systems: Как быстро писать эффективные базы данных на JavaА. Гончарук (Querify Labs) — Composable systems: Как быстро писать эффективные базы данных на JavaАндрей Паньгин, Леонид Талалаев, Артем Дроздов — Непрерывное профилирование в облаке с помощью eBPFАндрей Паньгин, Леонид Талалаев, Артем Дроздов — Непрерывное профилирование в облаке с помощью eBPFЧашка кофе с JPoint: интервью с Дмитрием ЧуйкоЧашка кофе с JPoint: интервью с Дмитрием ЧуйкоВладимир Ситников, Алексей Стукалов — Разбор доклада Ted Neward «Iconoclasm»Владимир Ситников, Алексей Стукалов — Разбор доклада Ted Neward «Iconoclasm»Антон Котов — Почему мы решили переходить на R2DBC и чем это закончилосьАнтон Котов — Почему мы решили переходить на R2DBC и чем это закончилосьДмитрий Чуйко — Не клади все яйца в один билдпакДмитрий Чуйко — Не клади все яйца в один билдпакJosh Long — Bootiful Spring GraphQLJosh Long — Bootiful Spring GraphQLАхтям Сакаев — DDDamn good!Ахтям Сакаев — DDDamn good!Александр Нозик — Архитектура математических вычислений на KotlinАлександр Нозик — Архитектура математических вычислений на KotlinAndres Almiray — JReleaser — releasing at the speed of lightAndres Almiray — JReleaser — releasing at the speed of lightАлександр Коженков — Масштабируем Spring Boot микросервисыАлександр Коженков — Масштабируем Spring Boot микросервисыАндрей Беляев — JPA-паззлеры (+Hibernate и Spring)Андрей Беляев — JPA-паззлеры (+Hibernate и Spring)Паша Финкельштейн — Магия Spark: Как высокоуровневые конвейеры становятся распределенным хардкоромПаша Финкельштейн — Магия Spark: Как высокоуровневые конвейеры становятся распределенным хардкоромЛеонид Старцев — Как эволюционировать свою библиотеку на Kotlin безболезненно для клиентовЛеонид Старцев — Как эволюционировать свою библиотеку на Kotlin безболезненно для клиентовGeoffrey De Smet — AI maintenance scheduling with OptaPlanner on QuarkusGeoffrey De Smet — AI maintenance scheduling with OptaPlanner on QuarkusНикита Поваров, Роман Поборчий — Самопишущийся кодНикита Поваров, Роман Поборчий — Самопишущийся кодДмитрий Константинов — Apache Cassandra — потоки и памятьДмитрий Константинов — Apache Cassandra — потоки и памятьЕвгений Мандриков — Decomposing ComposeЕвгений Мандриков — Decomposing ComposeSteve Poole — Practical steps for creating safer software (Code included)Steve Poole — Practical steps for creating safer software (Code included)Закрытие конференции Joker 2021Закрытие конференции Joker 2021
Яндекс.Метрика