赞
踩
大部分的程序代码转换为物理机的目标代码或虚拟机能执行的指令集之前,都需要经过下图各个步骤
Java代码编译是由Java源码编译器来完成,流程图如下
Java字节码的执行是由JVM执行引擎来完成
什么是解释器(Interpreter),什么是JIT编译器
当然是否需要启动JIT编译器将字节码直接编译为对应平台的本地机器指令,则需要根据代码被调用执行的频率而定,关于那些需要被编译为本地代码的字节码,称为“热点代码”,JIT编译器在运行时会针对那些频繁被调用的热点代码做出深度优化,将其直接编译为对应平台的本地机器指令,以此提升Java程序的执行性能。
/** * 测试三种模式 * -Xint:花费时间:4453 * -Xcomp:花费时间:594 * -Xmixed:花费时间:672 */ public class IntCompTest { public static void main(String[] args) { long start = System.currentTimeMillis(); testPrimeNumber(1000000); long end = System.currentTimeMillis(); System.out.println("花费时间:" + (end - start)); } private static void testPrimeNumber(int counter) { for (int i = 0; i < counter; i++) { //计算100内质数 label: for (int j = 2; j < 100; j++) { for (int k = 2; k<=Math.sqrt(j); k++) { if (j % k == 0) { continue label; } } } } } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。