JEP 483:提前类加载与链接——未复现预期性能提升问题
JEP 483 AOT类加载优化的复现差异疑问
JEP 483: 提前类加载与链接 中提到:
以代表性服务器应用Spring PetClinic 3.2.0为例,它启动时加载并链接约21000个类。在JDK 23上启动耗时4.486秒,使用AOT缓存的JDK NN上耗时2.604秒——巧合的是性能提升同样为42%,AOT缓存占用130MB。
出于对该统计数据的好奇,我尝试复现此结果,执行的命令如下:
java -XX:AOTMode=record -XX:AOTConfiguration=app.aotconf -jar target/spring-petclinic-3.4.0-SNAPSHOT.jar java -XX:AOTMode=create -XX:AOTConfiguration=app.aotconf -XX:AOTCache=app.aot -jar target/spring-petclinic-3.4.0-SNAPSHOT.jar java -XX:AOTCache=app.aot -XX:AOTMode=on -jar target/spring-petclinic-3.4.0-SNAPSHOT.jar
遗憾的是我未得到相同结果。首先,Spring PetClinic只有约17000个类;在我的机器上,无缓存启动耗时约3.2s,使用缓存后约2.8s,性能提升幅度与JEP 483所述相差较大。假设Oracle团队未捏造数据,我不清楚为何测试结果与发布的统计数据存在如此显著差异。
内容的提问来源于stack exchange,提问作者SGiux
相关产品推荐
相关产品推荐

