JIT与AOT

名词解释:
JIT(JUST - IN -TIME)实时编译
AOT(AHEAD-OF-TIME)预先编译

它们两者最根本的区别,就在于编译代码的时机,所谓的编译代码,就是把人类写的代码,翻译成机器字节码指令这么一个过程。

优缺点:

JIT优点:

1·可以实时根据硬件资源情况实时编译生成最优指令。
2·能实现动态链接,动态编译加载需要用到的模块代码,节省内存空间
3·能通过程序运行中内存和磁盘空间使用率情况,定位代码优化点(这是AOT无法做到的)

JIT缺点:

1·边运行边编译,会造成进程的卡顿,编译的同时收集编译信息,虽然会进行动态优化(例如热点代码热点方法等),但是会占用更多的内存资源
2·第一次编译运行时候较慢

方法内联:

假设一个方法checkUser,每一个接口都需要调用,用于校验身份和权限,按照方法的入栈出栈,这个方法会被每一个工作线程不停压入自己的私有栈中,执行完该方法后,再跳转回上一个方法,这样性能不高,而JIT优化中的一点方法内联,则支持将该方法代码复制到调用方法中,从而避免发生真实的方法调用,也就是checkUser的代码过来就好,它自身不要压进来。而JIT要实现这一点优化,很明显要有个地方保存类似“方法编译记录”之类的缓存,而这也可以理解为什么JIT更加占用内存以及支持更高的吞吐量<

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值