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

时间:2019-04-04 16:23:52

标签: java jvm java-9 java-11 graalvm

我的JVM具有-server选项,我相信它使JVM能够使用C2编译器,该编译器旨在用于服务器应用程序,该服务器应用程序的运行时间通常比客户端运行时间更长。但是,GRAAL JIT(由-XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -XX:+UseJVMCICompiler启用)旨在替换C2,即使我同时给出以下两个选项,我的JVM也会启动。

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

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

1 个答案:

答案 0 :(得分: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' .....