SDCast

SDCast #95: в гостях инженеры Excelsior JET

12.12.2018 - By Konstantin BurkalevPlay

Download our free app to listen on your phone

Download on the App StoreGet it on Google Play

Встречайте 95-й выпуск SDCast’а, в котором мы говорим про мир Java и JVM. В этот раз у меня в гостях ребята из компании Excelsior, чей флагманский продукт - это Excelsior JET (https://www.excelsior.ru/products/jet), реализация Java™ SE на основе статической компиляции. Поэтому в этом выпуске мы обсуждаем много технических аспектов реализации Java, как рантайма, так и компилятора, утилит мониторинга и производительности и многое другое.

Итак, в этом выпуске приняли участие:

* Никита Липский, один из инициаторов проекта Excelsior JET, и на данный момент руководитель продуктовго отдела JET.

* Павел Павлов, в проекте с 1998 года, отвечает за компиляторную часть проекта, архитектуру ядра JVM, обучает и курирует стажёров и студентов.

* Иван Углянский, один из разработчиков рантайма: GC, загрука классов, многопоточность, профилирование и т.д.

В начале ребята рассказали про историю компании, предпосылки и причины появления на свет альтернативной реализации JVM. Мы обсудили чего не хватает в стандартной JVM, какие есть проблемы, которые пытаются решить другие JVM.

Далее ребята рассказали про Excelsior JET:

* Чем она отличается от других?

* Какие есть особенности и фичи?

* На чём написана?

* Как выглядит архитектура системы в целом, какие есть модули, компоненты что и как взаимодействует

* Runtime и компилятор, как они устроены, какие алгоритмы используют

* Вопросы оптимизации производительности как компилятора, так и рантайма

В процессе дискуссии обсудили в целом JIT и AOT подходы, достоинства и недостатки каждого, в каких случаях выигрывает один вариант, а в каких другой. Вспомнили и про другие реализации JVM и интересные проекты в этой области, например набирающий популярность GraalVM.

Ссылки на ресурсы по темам выпуска:

* Старый (но хороший) доклад Паши и Никиты про JET и историю его появления (https://www.youtube.com/watch?v=G9Oj3e1XCRg)

* Доклад Никиты и Паши со встречи JUG.ru'13 “Excelsior JET: внутренняя архитектура (https://www.youtube.com/watch?v=tXDoGWGfZyw&t=2884s)”

* Доклад Никиты и Виталия Михеева с Java Day'16 “История одной JVM в картинках (https://www.youtube.com/watch?v=DHsVeZNqiVc)”

* Блог Excelsior JET (https://www.excelsiorjet.com/blog/), где можно найти много статей с различными техническими подробностями

* Conservative GC: Is It Really That Bad? (https://www.excelsiorjet.com/blog/articles/conservative-gc-is-it-really-that-bad/)

* Доклад Вани с JPoint'18 “Как сделать встроенный в JVM профайлер, который не боится AOT компиляции (https://www.youtube.com/watch?v=iw4O7G2eyHg&list=PLVe-2wcL84b9CC4_PMCxQrDYywz7J0beo)”

* Доклад Максима Казанцева с jBreak'18 “Как генератор тестов помог стабилизировать компилятор в Zing VM (https://www.youtube.com/watch?v=eyWFQ42dzd0)”

* Доклад Никиты про JetPerfect с JavaDay Kiev'14 “Java худеет. Уменьшение размера дистрибутива Java приложения без зависимостей (https://www.youtube.com/watch?v=2v3YapNH4ss&feature=youtu.be&t=878)”

* Доклад Никиты с JavaDay Kiev'14 “AOT компиляция (https://www.youtube.com/watch?v=aw89H-Vv-Zs)”

* Доклад Никиты и Владимира Парфиненко с Joker'15 “JVM: краткий курс общей анатомии (https://www.youtube.com/watch?v=JbLClSMRK_I)”

* Доклад Vojin Jovanovic с Joker'16 “Polyglot on the JVM with Graal: One VM for Java, node.js, Ruby, R, and C++! (https://www.youtube.com/watch?v=4WZWBpMp2vo)”

* Доклад Douglas Hawkins с JPoint'18 “ReadyNow — an «AOT» with profiling for Java (https://www.youtube.com/watch?v=AGyctnc1DTA)”

* Доклад Volker Simonis со встречи JUG.ru'15 “SAP JVM Internals (https://www.youtube.com/watch?v=IsERHnGn7Vs)”

* Доклад Dan Heidinga с GeeCON'17 “OpenJ9: Under the hood of the next open source JVM (https://www.youtube.com/watch?v=3VporpPlDds)”

* Доклад Marcus Lagergren с JavaDay Kyiv'15 “Design rationales in the JRockit JVM (https://www.youtube.com/watch?v=NODsunhgHRQ)”

Понравился выпуск? — Поддержи подкаст на patreon.com/KSDaemon (https://www.patreon.com/KSDaemon)

More episodes from SDCast