Let's Take a Look at JEP 483: Ahead-of-Time Class Loading and Linking
a year ago
- #JEP483
- #Performance
- #Java
- JEP 483 引入了类预加载与链接机制(AOT),无需修改代码即可降低Java应用的启动时间。
- 作为Leyden项目的一部分,JEP 483在应用类数据共享(AppCDS)基础上,新增了类的预加载与链接功能。
- 需要先进行训练运行以生成AOT缓存文件,确保所有必要类被预加载,实现最佳性能。
- 在Apache Kafka上的测试显示,使用AOT缓存后启动时间减少59%。
- Apache Flink同样受益,简单作业的首条消息处理时间缩短51%。
- AOT缓存特别适用于云原生场景、CLI工具和测试环境等对启动时间敏感的场景。
- GraalVM提供更先进的AOT编译方案(启动更快),但需代码适配且牺牲了Java的动态特性。
- Leyden项目旨在平衡GraalVM的限制与Java的完整动态性,未来将通过新JEP支持AOT编译和方法画像功能。