首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏程序那些事

    JDK14中JVM的性能优化

    AOT提供了一个java tool,名字叫做jaotc。 显示jaotc的命令格式: jaotc <options> <list of classes or jar files> jaotc <options> <--module name> 比如,我们可以这样提前编译 AOT库,以供在后面的JVM中使用: jaotc --output libHelloWorld.so HelloWorld.class jaotc --output libjava.base.so --

    1K20发布于 2020-07-07
  • 来自专栏愿天堂没有BUG(公众号同名)

    深入解析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

    68530编辑于 2022-10-31
  • 来自专栏C / C++

    Java 编译器的世界:前端、JIT 与 AOT 的秘密:详解 Java 的编译过程与编译器生态

    2.4 GraalVM 编译器 (新一代) 三、提前编译器 AOT (Ahead-Of-Time Compiler) 3.1 GraalVM Native Image 3.2 JDK 9 引入的 jaotc 3.2 JDK 9 引入的 jaotc 这是早期 OpenJDK 的一个实验性 AOT 功能,用于将 Java 类或模块编译成原生代码库。 现状:已被废弃并移除。 的 JIT 替代 现代化,用Java编写,性能有潜力 提前编译器 (AOT) Graal Native Image (主流) 将字节码直接编译为独立可执行文件 启动极快,占用内存小,适合云原生 ~~jaotc

    35210编辑于 2025-11-13
  • 来自专栏深度学习与python

    Leyden 延迟了 OpenJDK AOT 编译器,转而优化 JIT 编译器

    第一次尝试是 JEP 295 Ahead-of-Time Compilation 的 jaotc,并于 2017 年 9 月在 JDK 9 中交付。 但是,与 GraalVM Native Image 不同的是,它非常不受欢迎:当 Oracle 在 Java 16 构建版中移除 jaotc 时,“没有受到任何人的抱怨”。 首先,它的 jaotc AOT 编译器并没有得到足够的动力,并且已经废弃了。随后,Leyden 项目开始对 Java 的原生编译进行标准化,但停滞了两年之久。

    1.6K20编辑于 2023-03-29
  • 来自专栏Java技术圈子

    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基本一致 ,这里就不再赘述了

    5.2K32编辑于 2023-02-28
  • 来自专栏Java面试教程

    Java即时编译器原理解析与实践

    启动快、优化保守 GUI、短生命周期 C2(Server) 峰值性能高、编译耗时大 服务端、长生命周期 Graal(JDK 10+) 基于 Java 编写、支持 AOT、可插件化 云原生、静态镜像 Jaotc

    31710编辑于 2025-11-12
  • 来自专栏码匠的流水账

    Java16的新特性

    -8236926) 针对G1提供了并发归还内存给操作系统 移除项 Removal of Experimental Features AOT and Graal JIT (JDK-8255616) 移除jaotc

    72740发布于 2021-03-24
  • 来自专栏咖啡拿铁

    GraalVM下一代JVM到底是什么?

    前面两个阶段也就是大家平常比较熟悉的阶段,通过翻译和c1编译和c2编译来进行代码执行,而第三部分出现了一个AOT技术,也就是静态编译,可以在执行代码之前就将我们的代码编译成机器码,和C++一样,但是由于JAVA有很多动态特性,一般我们利用jaotc

    2.1K31发布于 2021-06-24
  • 来自专栏码匠的流水账

    Java16的新特性

    8236926) 针对G1提供了并发归还内存给操作系统 移除项 Removal of Experimental Features AOT and Graal JIT (JDK-8255616) 移除jaotc

    94420发布于 2021-03-18
  • 来自专栏程序猿阿朗的专栏

    Java 17 新功能介绍(LTS)

    JEP 401:移除实验性的 AOT 和 JIT 编译器 在 Java 9 的 JEP 295 中,引入了实验性的提前编译 jaotc 工具,但是这个特性自从引入依赖用处都不太大,而且需要大量的维护工作 主要移除了三个 JDK 模块: jdk.aot - jaotc 工具。 Jdk.internal.vm.compiler - Graal 编译器。

    1.5K20编辑于 2021-12-13
  • 来自专栏01二进制

    Lombok 原理探析

    例如:JDK 的 Jaotc

    51220编辑于 2022-03-29
  • 来自专栏ImportSource

    快来了解JDK10中引入的全新JIT编译器:Graal

    事实上,我们也可以通过jdk10的源码中看到jaotc的目录: ?

    2K110发布于 2018-04-03
  • 来自专栏SpringBoot教程

    Spring6 AOT 提前编译

    java -> .class -> (使用jaotc编译工具) -> .so(程序函数库,即编译好的可以供其他程序使用的代码和数据)图片(3)AOT的优点简单来讲, Java 虚拟机加载已经预编译成二进制库

    69620编辑于 2023-06-24
  • 来自专栏码匠的流水账

    Java17的新特性

    410: Remove the Experimental AOT and JIT Compiler 移除实验性的java版本的AOT及JIT Compiler,具体移除 jdk.aot — the jaotc

    1.3K41发布于 2021-09-16
  • 来自专栏Java Web

    什么?Java9这些史诗级更新你都不知道?Java9特性一文打尽!

    提前编译 AOT 借助 Java 9,特别是JEP 295,JDK 获得了提前(ahead-of-time,AOT) 编译器 jaotc。 # using the new AOT compiler (jaotc is bundeled within JDK 9 and above) jaotc --output libHelloWorld.so HelloWorld.class jaotc --output libjava.base.so --module java.base # with Java 9 you have to manually

    2.3K20发布于 2020-08-24
  • 来自专栏码匠的流水账

    Java17的新特性

    410: Remove the Experimental AOT and JIT Compiler 移除实验性的java版本的AOT及JIT Compiler,具体移除 jdk.aot — the jaotc

    1.1K10发布于 2021-10-11
  • 来自专栏芋道源码1024

    别被骗了,try-catch语句真的会影响性能吗?

    提前编译器:jaotc 三、关于测试的约束 执行用时统计 编译器优化的因素 关于指令重排序 四、测试代码 五、解释模式下执行测试 六、编译模式测试 七、结论 ---- 前言 不知道从何时起,传出了这么一句话 提前编译器:jaotc 它是后端编译的另一个主角,它有两个发展路线,基于Graal [新时代的主角] 编译器开发,因为本文用的是 C2 编译器,所以只对它做一个了解; 第一条路线 :与传统的C、C++编译做的事情类似

    1.4K40编辑于 2022-09-08
  • 来自专栏云时代Java开发:原理、实战与优化

    JDK 26新特性JEP 516 详解:GC-Neutral Format、Ahead-of-Time、ZGC、Shenandoah

    1.2扩展:JEP514(JDK25)-AOT命令行工具JDK25进一步提供了jaotc命令行工具,让开发者可以更方便地生成和管理AOT缓存文件。

    14720编辑于 2026-04-06
  • 来自专栏一个会写诗的程序员的博客

    Java JVM 动态方法调用指令 invokedynamic 实现分析(以 Lambda 表达式实现原理为例)

    JDK 9 引入了用于支持对 Class 文件和模块进行提前编译的工具 Jaotc,以减少程序的启动时间和到达全速性能的预热时间, 但由于这项功能必须针对特定物理机器和目标虚拟机的运行参数来使用,加之限制太多

    1.5K11编辑于 2022-01-27
  • 来自专栏BestSDK

    Java 9正式发布:这次Jigsaw终于来了

    在 JDK 9 中, AOT作为实验特性被引入进来,开发者可以利用新的 jaotc 工具将重点代码转换成类似类库一样的文件,这样会大大降低启动开销。

    1.3K50发布于 2018-03-01
领券