Андрей Паньгин — Java Runtime: повседневные обязанности виртуальной машины Java

preview_player
Показать описание
Ближайшая конференция — JPoint 2025, 3–4 апреля (Москва + трансляция).
— —
. . . . Конференция JPoint 2013
Андрей Паньгин, «Одноклассники» — Java Runtime: повседневные обязанности виртуальной машины Java
Санкт-Петербург, 05.04.2013

Что делает JVM? Компилирует код и выполняет сборку мусора, — скажете вы и будете совершенно правы. Тем не менее, Java приложения могут работать даже при полном отсутствии JIT и GC.

Виртуальная машина состоит из большого числа компонентов, благодаря которым исполнение Java-программ становится возможным. Из доклада вы узнаете, что представляет собой байткод, где лежат переменные, что содержится в class-файлах, кто ловит исключения, насколько дороги JNI методы, как работает синхронизация и многое другое.
Рекомендации по теме
Комментарии
Автор

Очень подробно и понятно. Спасибо, Андрей

ruslansimakov
Автор

Андрей, на 40:50 ты бездоказательно говоришь, что "бросить исключение" очень дорого и т.п. Не имею ничего против тебя, но конкретно здесь ты ошибаешься. Привёл бы замеры -- вопросов бы не было.


Если речь об интерпретируемом коде -- сравнивать производительность смысла нет.
А если речь о C2, то тут ещё вопрос, ведь тут никакого исключения создаваться и не будет. Будет просто выход из цикла. Не исключаю, что машинный код вообще одинаковый получится.

VladimirSitnikov