-server -XX时使用哪个编译器:+ UnlockExperimentalVMOptions -XX:+ EnableJVMCI -XX:+ UseJVMCICompiler

问题描述 投票:5回答:1

我的JVM有-server选项,我相信它使JVM能够使用C2编译器,这意味着用于服务器应用程序,这些应用程序往往比客户端对应程序运行更长时间。但是,GRAAL JIT(由-XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -XX:+UseJVMCICompiler启用)意味着取代C2,即使我同时给出两个选项,我的JVM也会启动。

-server -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -XX:+UseJVMCICompiler

哪个编译器最终使用? Graal JIT还是C2?

java jvm java-9 java-11 graalvm
1个回答
4
投票

-server被忽略了,请阅读this answer for example。你可以做的是运行一些额外的命令:

 java -XX:+UnlockExperimentalVMOptions 
      -XX:+EnableJVMCI 
      -XX:+UseJVMCICompiler  
      -Dgraal.ShowConfiguration=info  // this
      -XX:+EagerJVMCI  // and this matters

结果将包含:

Using Graal compiler configuration 'community' ..... 
© www.soinside.com 2019 - 2024. All rights reserved.