第11章+晚期(运行期)优化

目录

 

11.2 HotSpot虚拟机内的即时编译器

11.2.1 解释器与编译器

11.2.4 查看与分析即时编译结果

11.3 编译优化技术

11.3.1 优化技术概览


11.2 HotSpot虚拟机内的即时编译器

11.2.1 解释器与编译器

代码清单11-1,虚拟机执行模式

Microsoft Windows [版本 10.0.17763.316]
(c) 2018 Microsoft Corporation。保留所有权利。

C:\Users\ee>java -version
java version "1.7.0_80"
Java(TM) SE Runtime Environment (build 1.7.0_80-b15)
Java HotSpot(TM) Client VM (build 24.80-b11, mixed mode, sharing)

C:\Users\ee>java -Xint -version
java version "1.7.0_80"
Java(TM) SE Runtime Environment (build 1.7.0_80-b15)
Java HotSpot(TM) Client VM (build 24.80-b11, interpreted mode, sharing)

C:\Users\ee>java -Xcomp -version
java version "1.7.0_80"
Java(TM) SE Runtime Environment (build 1.7.0_80-b15)
Java HotSpot(TM) Client VM (build 24.80-b11, compiled mode, sharing)

C:\Users\ee>

11.2.4 查看与分析即时编译结果

 代码清单11-2,测试代码

/*
 * 代码清单11-2,测试代码
 * VM Args:-XX:+PrintCompilation
 */
package cn.chapter11;

public class Solution11_2 {
	
	public static final int NUM = 15000;

	public static int doubleValue(int i){
		return i*2;
	}
	
	public static long calcSum(){
		long sum = 0;
		for(int i =1;i<=100;i++)
			sum += doubleValue(i);
		return sum;
	}
	
	public static void main(String[] args) {
		for(int i = 0;i<NUM;i++)
			calcSum();
	}
}

代码清单11-3,被=即时编译的代码:

     30    1             java.lang.String::hashCode (55 bytes)
     31    2             java.lang.String::indexOf (70 bytes)
     31    3             java.lang.String::charAt (29 bytes)
     32    4             java.lang.Object::<init> (1 bytes)
     33    5             cn.chapter11.Solution11_2::doubleValue (4 bytes)
     33    6             cn.chapter11.Solution11_2::calcSum (26 bytes)
     35    7 %           cn.chapter11.Solution11_2::main @ 5 (20 bytes)

不知什么原因报错(可能是虚拟机的原因,书上说了一下):(所以没有结果)待解决。。。。

Improperly specified VM option 'PrintInlining'

11.3 编译优化技术

11.3.1 优化技术概览

没什么好说的。。。

猜你喜欢

转载自blog.csdn.net/Quantum_Dog/article/details/88389836
今日推荐