Существуют ли JVM, которые создают объекты в стеке? Или JVM, которые не взаимодействуют с Java Сборкой мусора через счетчики ссылок и т. Д. c?
Предполагается, что в методе создан временный объект. И ссылка на этот объект никогда не будет передана / сохранена / доступна вне метода. Он используется только для внутреннего использования.
При следовании классическому c подходу распределения объектов (в стеке вместе со счетчиками ссылок) необходимо выполнить следующие шаги:
- Найдите место в куче, достаточно большое для размещения объекта
- Выделите пространство
- Обновите указатель ссылки
- Зарегистрируйте объект с помощью сборки мусора
- [... объект используется, в конечном итоге отбрасывается ...]
- Определить для сборки мусора
- Удалить из кучи
- Отменить регистрацию в G C
Таким образом, если бы теперь виртуальная машина создала Объекты в стеке, шаги 1,3,4,6,7,8 не были бы необходимыми, а шаг 2 и его аналог 7i sh были бы простым стеком управление.
Так есть ли JVM, которые оптимизируют это?
Или какие-нибудь гибридные системы, такие как выделение объекта в куче, но не касание обычного G C, и вместо этого directclty удаление объекта в конце своей области?
Есть ли реализации с несколькими кучами (одна с поддержкой G C, а другая со стеком)?