2014-11-27 3 views
0

В C (например, C++) можно выделить массивы, структуры (соответственно объекты), которые являются строго локальными для функции (соответствующего метода) в фрейме стека, выделенной для этой функции.Может ли robovm выделять локальные объекты метода в стеке, а не в кучу?

Однако в java все объекты выделены в куче, даже объекты, которые являются полностью локальными для метода и никогда не просачиваются вне метода.

В некоторых случаях возможность выделения таких объектов в стеке, а не куча обеспечивала бы большую эффективность.

Поддерживает ли это создание кода RoboVM или может ли оно поддержать это в будущем?

С уважением

ответ

0

RoboVM не поддерживает распределение стека. Некоторые виртуальные машины выполняют анализ утечки, чтобы определить, является ли определенное распределение локальным для метода и может выполняться в стеке вместо кучи. Мы могли бы добавить это в RoboVM в будущем в качестве оптимизации, хотя он не будет напрямую контролироваться пользователем. Я знаю, что IBM экспериментирует с чем-то похожим на структуры .NET: http://www.slideshare.net/mmitran/ibm-java-packed-objects-mmit-20121120. Если это когда-либо принято в качестве стандарта, мы попытаемся реализовать его в RoboVM.

+0

Благодарим вас за ответ, а также я не знал об этой функции .NET. Я надеюсь, что эта функция войдет в сферу Java/Scala. – remi

 Смежные вопросы

  • Нет связанных вопросов^_^