JDK1.8默认开启逃逸分析,这是一种代码分析手段,能动态分析对象的作用域,为其它优化手段如栈上分配、标量替换和同步消除等提供依据。
一共可能有两种逃逸行为:方法逃逸和线程逃逸。
- 方法逃逸:当一个对象在方法中定义之后,作为参数传递到其它方法中;
- 线程逃逸:如类变量或实例变量,可能被其它线程访问到;
如果确认不存在逃逸行为,则可以对该对象进行如下优化:同步消除、标量替换和栈上分配。
参考:https://www.jianshu.com/p/20bd2e9b1f03
原文地址:https://www.cnblogs.com/LinsenLi/p/10661319.html
时间: 2024-10-09 20:35:58