Олег Шелаев
Компания: Oracle
Комментарий Программного комитета:
Знаток рантаймов 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. В ассемблер смотреть не будем, ну разве что чисто для галочки.
Компания: Oracle