jit和jitx区别_JIT是什么东西 分分钟打下来!

先了解下背景

有点丑 缺少设计细胞 凑合凑合看吧

大家好!又来给大家分享干货了!今天就简简单单把JIT打下来。

Java具有强大跨平台能力,是由于JVM为我们屏蔽了操作系统和硬件层面的差异,我们看下上图,编写的 .Java 文件经过第一次编译(这里称之为第一次编译以区分即时编译)成 .class 字节码文件,该字节码文件为JVM能够识别的文件,通过类加载器将字节码加载到JVM内存,进一步实现类加载的全过程(加载、链接、初始化),当Java运行时,将字节码的内容通过解释器翻译为硬件能够识别的机器码并执行,因此解释器的作用就是读取字节码指令、翻译为机器码,并执行这三个步骤,这是我们会发现,如果相同的代码块或者方法反复读取和翻译为机器码反复被执行,是对资源的浪废,并且耗时.因此,JIT(即时编译器)应运而生。

什么是JIT(Just-In-Time)?

当虚拟机发现某个方法或者代码块运行的特别频繁,就会将这些代码认定为热点代码,为了提升热点代码的执行效率,在运行时,虚拟机将这些代码编译(第二次编译)成本地机器码.(这里是将字节码转换为机器码),缓存起来,以尽各种手段尽可能的进行代码优化,运行时,完成这个任务的后端编译器称之为即时编译器,即JIT。

解释器与即时编译器

那是不是有了JIT,就不需要解释器了呢?

程序需要迅速启动或者运行时,解释器首先发挥作用,省去编译的时间,立即运行,随着时间的推移,编译器发挥作用将越来越多的代码编译成本地代码(机器码).

为什么编译器要随着时间的推移才发挥作用呢?

<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值