首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

深入解析java虚拟机:编译器到底为何物?面试大厂该怎么答?

Java 9包含了仅Linux可用的一个实验性质的AOT编译器jaotc[1],Java 11后的jaotc支持所有操作系统。...jaotc使用Graal编译器作为后端,它可以在虚拟机启动前将Java类编译成ELF格式的共享库,然后在虚拟机启动后加载共享库。...jaotc编译产出的共享库的代码和普通JIT编译后的代码一样,加载到虚拟机后可能发生退优化、类卸载等行为。对于一些长期运行的服务端程序,它们可能经历和JIT编译器相同的生命周期。...除此之外,目前jaotc的限制较多,能编译的Java代码和使用场景也比较有限,一个更好的选择是Graal VM平台的Substrate VM。...HotSpot VM自带的JVMCI实现和jaotc一样也要用到Graal编译器,需要附加虚拟机参数-XX:+ UnlockExperimentalVMOptions -XX:+UseJVMCICompiler

44630
您找到你想要的搜索结果了吗?
是的
没有找到

Java在云原生的破局利器——AOT(JIT与AOT)

“第二春”,支持AOT是非常重要的一步,而在这一步上,Java语言却经历了一波三折: 2016年,OpenJDK的 JEP 295提案首次在Java中引入了AOT支持,在这一草案中,JDK团队提供了 jaotc...jaotc的类似于给JVM打了一个“补丁”,让用户有权利将部分代码编译成机器码的时期提前,并预装载到JVM中,供运行时代码调用。...由于这个问题无法快速修复,jaotc最终给出的方案只是暴力地禁止用户自定义classloader使用AOT。...此外,由于社区人手不足,缺乏调优和维护,jaotc的实际运行效果不尽人意,有时甚至会对应用的启动和运行速度带来反向优化,实装没多久之后就退化为实验特性,最终在JDK 16中被删除,结束了短暂的一生。...后来阿里AJDK团队自研的AppCDS(Class-Data-Share)技术继承了jatoc的思路,进行了大幅的优化和完善,目前也不失为一种Java AoT的选择,其本质思路和jaotc基本一致 ,这里就不再赘述了

2K30

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券