本文主要是介绍栈上分配、逃逸分析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
栈上分配
栈上分配是java虚拟机提供的一种优化技术,基本思想是对于那些线程私有的对象(指的是不可能被其他线程访问的对象),可以将它们打散分配在栈上,而不是分配在堆上。分配在栈上的好处是可以在函数调用结束后自行销毁,而不需要垃圾回收器的介入,从而提供系统的性能。
栈上分配的一个技术基础是进行逃逸分析。
逃逸分析的目的是判断对象的作用域是否有可能逃逸出函数体。在运行时分析对象的生命周期,如果发现该对象只会被本线程使用(一般是一些局部对象),那么就将该对象在栈上分配,而不在堆中(heap)分配,
1)以减少对象对堆的压力
2)减少GC的次数
3)减少同步带来的效率问题
这篇关于栈上分配、逃逸分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!