问题一:JVMCI JIT编译器与JVM的交互主要包括哪些方面?
JVMCI JIT编译器与JVM的交互主要包括哪些方面?
参考回答:
JVMCI JIT编译器与JVM的交互可以分为三个方面:1. 响应编译请求;2. 获取编译所需的元数据(如类、方法、字段)和反映程序执行状态的profile;3. 将生成的二进制码部署至代码缓存(code cache)里。
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/615256
问题二:即时编译器的完整编译周期包括哪些步骤?
即时编译器的完整编译周期包括哪些步骤?
参考回答:
即时编译器的完整编译周期包括响应编译请求、获取编译所需的数据,完成编译并部署。
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/615257
问题三:为什么传统的即时编译器与Java虚拟机是紧耦合的?
为什么传统的即时编译器与Java虚拟机是紧耦合的?
参考回答:
传统的即时编译器与Java虚拟机紧耦合,意味着对即时编译器的更改需要重新编译整个Java虚拟机。
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/615258
问题四:JVMCI的引入是为了解决什么问题?
JVMCI的引入是为了解决什么问题?
参考回答:
JVMCI的引入是为了让Java虚拟机与Graal解耦合,使得在Graal所依赖的JVMCI版本不变的情况下,我们仅需要替换Graal编译器相关的jar包(Java 9以后的jmod文件),便可完成对Graal的升级。
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/615259
问题五:JVMCI接口的主要方法是什么?
JVMCI接口的主要方法是什么?
参考回答:
JVMCI接口的主要方法是compileMethod(CompilationRequest request),这个方法用于响应编译请求,将方法编译成机器码,并在编译成功后将其安装在代码缓存中。
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/615260