В выпусках мы уже обсуждали Java, Kotlin, Scala и даже Clojure, но теперь пришло время разобраться с основой популярности этих языков — Java Virtual Machine. Кто сможет лучше всего рассказать о внутреннем устройстве JVM? Конечно, тот, кто сам создавал одну из её реализаций! В этом выпуске вместе с Никитой Липским, инициатором проекта Excelsior JET — JVM с AOT компилятором, мы углубляемся в анатомию JVM, разбираемся с её спецификацией и различными реализациями, обсуждаем особенности оптимизаций, текущие проблемы и тренды в экосистеме JVM.
Содержание:
- 00:00 О чем выпуск
- 03:02 История компании Exel Jet
- 07:28 Появление Java
- 12:55 Развитие JVM20:44 Архитектура JVM
- 25:23 Процесс загрузки классов
- 31:18 Execution Engine
- 33:07 Reflection
- 34:01 Метаданные и их хранение
- 44:26 Многопоточность
- 50:55 Проект Loom
- 55:13 Польза понимания JVM
- 01:07:24 Различия в реализациях JVM
- 01:09:40 Оптимизация и бенчмаркинг
- 01:14:12 Архитектура и преимущества HotSpot
- 01:18:45 Влияние на другие реализации
- 01:24:24 Оптимизация компилятора
- 01:30:39 Конкуренция в коллекторах
- 01:31:51 Реализация JVM
- 01:42:24 Влияние языка на производительность
- 01:53:30 Будущее JVM и тренды
- 01:56:19 Сообщество и развитие JVM
- 01:58:10 Время старта и производительность
- 02:01:47 Статические инициализаторы и их влияние
- 02:03:39 Проект Len и ускорение старта
- 02:07:17 Заключение