标量替换
首先要明确数据分为聚合量和标量,标量是不可在继续分的,而聚合量是能够继续分的。如果逃逸分析证明一个对象不会被外访问或者引用,并且这个对象是可以分的,那么创建的时候就不会创建这个对象了,而改为使用若干个标量来替换它,这样是为了拆开以后便于标量可以在各个栈上进行分配了。
进行逃逸分析
//参数如下 -server -Xms100m -Xmx100m -XX:+UseParallelGC -XX:-DoEscapeAnalysis -XX:+UseTLAB -XX:+EliminateAllocations
public class EscapeAnalysisTest {
static class User{
byte[] bytes = new byte[1024*20];
}
public static void alloc(){
User user = new User();
// byte[] bytes = new byte[1024*20];这里首先关闭
}
public static void main(String