在C(resp。C ++)中,可以在为此功能分配的堆栈帧中分配严格位于函数(resp。方法)本地的数组,结构(resp。对象)。
但是,在Java中,所有对象都分配在堆上,甚至是完全位于方法本地且从未泄漏到方法外部的对象。
在某些情况下,能够在堆栈而不是堆上分配此类对象将大大提高效率。
RoboVM代码生成是否支持此功能,或者将来是否可以支持此功能?
问候
RoboVM不支持堆栈分配。一些VM会进行转义分析,以确定某种分配是否对于方法而言是本地的,并且可以在堆栈上而不是在堆上完成。我们将来可能会将其作为优化添加到RoboVM中,尽管它不是直接可由用户控制的。我知道IBM正在试验类似于.NET的结构:http : //www.slideshare.net/mmitran/ibm-java-packed-objects-mmit-20121120。如果该标准被接受,我们将尝试在RoboVM中实现它。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句