你的位置:首页 > Java教程

[Java教程]【Java】实战Java虚拟机之五“开启JIT编译”

今天开始实战Java虚拟机之五“开启JIT编译”

总计有5个系列

  • 实战Java虚拟机之一“堆溢出处理”
  • 实战Java虚拟机之二“虚拟机的工作模式”
  • 实战Java虚拟机之三“G1的新生代GC”
  • 实战Java虚拟机之四“禁用System.gc()”
  • 实战Java虚拟机之五“开启JIT编译”

     Java虚拟机有3种执行方式,分别是解释执行、混合模式和编译执行,默认情况下处于混合模式中。使用命令行java –version可以查看虚拟机的执行模式:

C:\Users\Administrator>java -versionjava version "1.7.0_13"Java(TM) SE Runtime Environment (build1.7.0_13-b20)Java HotSpot(TM) 64-Bit Server VM (build 23.7-b01,mixed mode)

     上面输出的“mixed mode”就表示混合模式。在混合模式中,部分函数会被解释执行,部分可能被编译执行。虚拟机决定函数是否需要编译执行的依据是判断该函数,是否为热点代码。如果函数的调用频率很高,被反复使用,那么就会被认为是热点,热点代码就会被编译执行。

     解释执行模式表示全部代码均解释执行,不做任何JIT编译,可以使用参数-Xint来开启解释执行模式: 

C:\Users\Administrator>java -Xint -versionjava version "1.7.0_13"Java(TM) SE Runtime Environment (build1.7.0_13-b20)Java HotSpot(TM) 64-Bit Server VM (build 23.7-b01,interpreted mode)

   编译执行模式和解释执行模式相反,对于所有的函数,无论是否是热点代码,都会被编译执行,使用参数-Xcomp可以设置为编译模式:

C:\Users\Administrator>java -Xcomp -versionjava version "1.7.0_13"Java(TM) SE Runtime Environment (build1.7.0_13-b20)Java HotSpot(TM) 64-Bit Server VM (build 23.7-b01,compiled mode)

一般来说,编译模式的执行效率会远远高于解释模式。更多的示例参考《实战Java虚拟机》一书。

 【示例11-36】下面的代码不停计算圆周率的数值,并给出了运行的耗时: 

public static double calcPi(){     doublere=0;     for(inti=1;i<10000;i++){          re+=((i&1)==0?-1:1)*1.0/(2*i-1);     }     returnre*4;}public static void main(String[] args) {     longb=System.currentTimeMillis();     for(inti=0;i<10000;i++)          calcPi();           longe=System.currentTimeMillis();     System.out.println("spend:"+(e-b)+"ms");}

使用虚拟机参数-Xint运行以上代码,输出:

 spend:2794ms

使用虚拟机参数-Xcomp运行以上代码,输出:

spend:1082ms

 

很明显,在本例中使用编译运行要比解释运行快大约3倍。

 

 

 

25612fm立体图

《实战java虚拟机》一书Q交流群:397196583


桂林旅游必去的地方是桂林旅游必去景点排名桂林旅游地图线路大全桂林旅游多少钱桂林旅游攻略大全百万葵园门票_百万葵园门票价格_广州百万葵园门票多少钱 到春节文化之乡—阆中去过年_春节旅游推荐 悉尼新体验 南半球最具活力的城市 奥克兰旅游注意事项 峨眉山冬季风光 九寨沟美食介绍 峨眉山圣水禅院介绍 九寨沟黄龙机场情况简介 亚龙湾热带天堂旅游日免费吗?5.19旅游日三亚亚龙湾热带天堂优惠活动? 南宁龙虎山旅游攻略?龙虎山具体地址? 广州电视塔旅游日免费吗?5.19旅游日广州电视塔摩天轮优惠活动? 羊角山漂流团购价格?清远羊角山漂流门票包含什么? 2015礐石风景区春节有什么花开放?汕头礐石风景区新增游乐设施有哪些? 2015深圳野生动物园马戏节什么时候结束?深圳马戏节门票多少钱? 2015春节深圳马戏节有哪些好玩的?深圳马戏节在哪里举行? 南沙水鸟世界一日游攻略?广州南沙水鸟世界一天能玩完吗? 1N5224A(DO-35) Datasheet 1N5224A(DO-35) Datasheet BZT52C11S-TP Datasheet BZT52C11S-TP Datasheet BZT52C16S-TP Datasheet BZT52C16S-TP Datasheet 浙江去比基尼群岛旅游 浙江去比基尼群岛旅游 浙江去比基尼群岛旅游 浙江去比利时旅游 浙江去比利时旅游 浙江去比利时旅游 浙江去冰岛旅游 浙江去冰岛旅游 浙江去冰岛旅游