关于对JIT和AOT特性的理解

关于对JIT和AOT特性的理解

面向对象语言性能较低的原因

  1. 将大部分的对象使用堆来进行存储,只有少数基本类型在栈中存放,而且堆得性能低于栈。
  2. 很多强制类型转换(cast)或加查,耗用内存大。java运行时对类型检测,如果类型不正确会抛出ClassCastException异常。
  3. 自动垃圾回收机制要耗用不少内存。
  4. 面向对象语言是半编译语言,最终的执行代码并不是可以直接进行编译的二进制机械码。

JIT和AOT

java文件的执行流程

在这里插入图片描述
上述过程源代码经javac编译成字节码.class文件,后经程序字节码经过JIT环境变量进行判断,是否属于“热点代码”(消耗大部分系统资源的一小部分的代码),最后通过JIT编译为具体硬件处理器(如sparc、intel)机器码。
优点:
1.通过在运行时收集监控信息,把"热点代码"(Hot Spot Code)编译成与本地平台相关的机器码,并进行各种层次的优化;
2.可以大大提高执行效率;
缺点:
1.收集监控信息影响程序运行;
2.编译过程占用程序运行时间(如使得启动速度变慢);
3.编译机器码占用内存;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值