逃逸分析和栈上分配

Java实例的内存是分配在堆区域当中的,而栈区域当中只保存了引用,当实例不再使用的时候则进行垃圾回收。程序运行的时候,堆区就变成了垃圾回收的重点区域,如果实例的数量较多的时候,就会出现性能问题。减少实例在堆当中分配内存无疑是最有效的优化方式。

JVM虚拟机会针对实例进行逃逸分析,简单来说就是分析其作用域,如果实例对象没有成员方法外的任何引用指向那么就未发生逃逸。而未发生逃逸的实例,将被分配到栈区域,生命周期随着线程消亡,也就不用垃圾回收来释放其内存。从而降低堆内存分配,减少垃圾回收频率,提高垃圾效率。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容