Ответ 1
OopMap - это структура, которая записывает, где ссылки на объекты (ООП) расположены в стеке Java. Его основная цель - найти корни GC на стеках Java и обновлять ссылки всякий раз, когда объекты перемещаются внутри кучи.
Существует три типа OopMaps:
- OopMaps для интерпретируемых методов. Они вычисляются лениво, т.е. Когда GC происходит, анализируя поток байт-кода.
- OopMaps для JIT-скомпилированных методов. Они генерируются во время JIT-компиляции и сохраняются вместе с скомпилированным кодом, чтобы виртуальная машина могла быстро найти по инструкции адрес расположения стека и регистры, где хранятся ссылки на объекты.
- OopMaps для сгенерированных общих оболочек времени выполнения. Эти карты создаются вручную разработчиками - авторами этих врезок времени выполнения.