栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

为什么使用JIT与编译机器码相比Java更快?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

为什么使用JIT与编译机器码相比Java更快?

任何AOT编译器的真正杀手是:

Class.forName(...)

这意味着您不能编写涵盖 所有
Java程序的AOT编译器,因为仅在运行时存在有关程序特性的信息。但是,您可以在Java的子集上执行此操作,这是我认为gcj所做的。

另一个典型的例子是,如果发现JIT可以安全地在调用方法中直接内联诸如getX()之类的方法,并且可以将其撤消,即使程序员没有明确帮助,也可以将其撤消方法是最终的。JIT可以看到在正在运行的程序中没有重写给定的方法,因此在这种情况下可以将其视为最终方法。在下一次调用中可能会有所不同。


编辑2019年:Oracle引入了GraalVM,它允许在Java的一个子集(相当大的一个,但仍然是一个子集)上进行AOT编译,其主要要求是所有代码都可以在编译时使用。这允许Web容器的毫秒启动时间。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/497518.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号