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