🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
### 逃逸分析 逃逸分析并不是直接的优化手段,而是一个代码分析,通过动态分析对象的作用域,为其它优化手段如栈上分配、标量替换和同步消除等提供依据,发生逃逸行为的情况有两种:方法逃逸和线程逃逸。 1. 方法逃逸:当一个对象在方法中定义之后,作为参数传递到其它方法中; 2. 线程逃逸:如类变量或实例变量,可能被其它线程访问到; 如果不存在逃逸行为,则可以对该对象进行如下优化:同步消除、标量替换和栈上分配。 注意:逃逸分析是C2进行很多优化的基础,逃逸分析是指根据运行状况来判断方法上的变量是否被外部读取。基于逃逸分析C2编译器在编译时会做标量替换、栈上替换和同步消除等优化;