虚拟机执行效率优化:JIT相关参数

目录

三种执行模式

编译阈值

多级编译


      我们知道Java程序经过编译得到字节码文件后,再通过解释器解释执行,相对于其他静态编译执行语言(也就是程序在执行前全部被翻译成机器码),解释执行的效率要低很多。原因简单来说是字节码解释器在执行时使用的软件代码来模拟字节码执行,如果是使用模板解释器来执行,每一条字节码关联一个模板函数,模板函数里面就是字节码对应的机器指令,性能有所提升,这些是对解释器的优化。但还不够,相信大家都听过Java虚拟机中的JIT即时编译技术,其工作过程是一边翻译一边执行,将需要执行的整个函数体编译成机器码后再执行,JTI编译器还会将这些编译过的代码缓存起来,下次执行时可以从缓存中直接那编译好的机器码用,这样可以大大提升程序的执行效率,这篇日志就来总结下JIT即时编译和它的一些参数。

 

三种执行模式

      JVM有编译执行、解释执行和混合执行三种模式,解释执行模式下整个Java程序都是通过解释执行方式,不做任何的JIT编译来执行,可以使用参数-Xint来开启。编译执行模式就是反过来,对于所有的函数执行,都是先编译成机器码,无论其是否为热点代码,编译模式使用参数-Xcomp来设置。第三种是混合模式,顾名思义是将编译和解释两者结合,既有编译执行也有解释执行,那么JVM怎么判断,或者说决定那部分函数应该使用解释执行,那部分函数应该使用编译执行呢࿱

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值