JEP 317: 实验性的基于JAVA的JIT编译器
- 原作者 Igor Veresov
- 创建日期 2017/10/20 20:03
- 更新日期 2018/03/28 01:58
- 类型 特点
- 状态 已关闭/ 已发布
- 组件 hotspot / 编译器
- 范围 JDK
- 详述 hotspot /compiler/dev@openjdk.java.net
- 工作量 M
- 持久度 M
- 优先级 3
- 审核者 John Rose, Mikael Vidstedt, Vladimir Kozlov
- 批准者 Vladimir Kozlov
- 版本号 10
- 事件号 8189751
总结
允许基于JAVA的JIT编译器Graal在Linux/x64平台上作为实现性质的JIT编译器使用。
无目标
与现有的JIT编译器的性能表现持平或者超过现有JIT编译器并不是此项特性的目标
动机
Graal是一个基于Java的JIT编译器,也是基于JDK 9已引入实验性的预先编译(AOT)功能。允许它作为实验性质的JIT编译器是整个OpenJDK项目的一个初心, 后续也能帮助探索JDK使用基于Java的JIT编译器的可行性。
描述
允许Graal作为实验性质的JIT编译器,并且先从Linux/x64平台开始。 Graal将会使用JDK 9引入的JVM编译接口 (JVMCI)。 由于Graal目前已在JDK中,所以允许它作为实验性质的JIT最主要还是为了测试和调试的工作。
要允许Graal作为JIT编译器,需在java命令行使用以下命令:
-XX:+UnlockExperimentalVMOptions -XX:+UseJVMCICompiler
测试
所有针对编译器的标准测试都需测到。这里面包括在Linux/x64平台所有不同的标签项的HotSpot和JDK测试。在标准测试的基础上,为Graal开发的单元测试将会被运行。在jtreg框架上运行这些单元测试将会被实现。初始性能测试和基准测试也是这项工作的部分。
风险和假设
启动变慢和增加Java堆使用空间的程度可能都超出最开始开发者的预估。跟传统Hotspot JTT之间的应用和基准表现还有不小的鸿沟。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/66861.html