【TLAB】
【解释】
开启TLAB,默认为开启。
打开TLAB跟踪参数
JVM在第一次使用时会把所有的字节码编译成本地代码,从而带来最大程度的优化。启用对所有函数的JIT
禁止后台编译
关闭逃逸分析
在部分商用虚拟机中(如HotSpot),Java程序最初是通过解释器(Interpreter)进行解释执行的,当虚拟机发现某个方法或代码块的运行特别频繁时,就会把这些代码认定为“热点代码”。为了提高热点代码的执行效率,在运行时,虚拟机将会把这些代码编译成与本地平台相关的机器码,并进行各种层次的优化,完成这个任务的编译器称为即时编译器(Just In Time Compiler,下文统称JIT编译器)。
【逃逸分析】
如下所示:
Student student; // 属于逃逸了
public void say1() {
student = new Student();
}
public void say2() {
Student student = new Student(); // 没有逃逸
}
【注意】
【标量替换】
即不可被进一步分解的量,——JAVA的基本数据类型就是标量(如:int,long等基本数据类型以及reference类型等)
标量的对立就是可以被进一步分解的量。——JAVA中对象就是可以被进一步分解的聚合量。
条件1> 通过逃逸分析确定该对象不会被外部访问。
条件2> 对象可以被进一步分解,即聚合量。
JVM不会创建该对象,而会将该对象成员变量分解若干个被这个方法使用的成员变量所代替。
这些代替的成员变量在栈帧或寄存器上分配空间。