运行模式
1.解释模式:运行过程中进行编译一行,执行一行
-Xint #强制使用解释模式
2.编译模式:一次性编译成机器码,再执行
-Xcomp #编译模式
3.混合模式:少数热点代码进行编译模式,其余是解释模式
不全部使用编译模式的原因:
编译后的机器码文件很大,占用特别多内存
逃逸分析
分析对象的动态作用域
当一个对象在方法中被定义后,判断是否会被其他方法引用,若被引用,则放堆内存,否则放战针中,若栈帧中放不下,还是会放到堆中
例如:
JVM参数:默认开启
-XX +DoEspaceAnalysis #开启
-XX -DoEspaceAnalysis #关闭