какой компилятор используется, когда -server -XX: + UnlockExperimentalVMOptions -XX: + EnableJVMCI -XX: + UseJVMCICompiler - PullRequest
5 голосов
/ 04 апреля 2019

У моей JVM есть опция -server, я полагаю, что она позволяет JVM использовать компилятор C2, который предназначен для серверных приложений, которые, как правило, работают дольше, чем клиентские аналоги. Однако GRAAL JIT (который активируется -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -XX:+UseJVMCICompiler) предназначен для замены C2, и моя JVM запускается, даже когда я даю обе опции, как показано ниже.

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

какой компилятор он использует? Грааль JIT или C2?

1 Ответ

4 голосов
/ 04 апреля 2019

Если -server просто игнорируется, прочитайте этот ответ, например .Что вы можете сделать, это запустить с некоторыми дополнительными командами:

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

Результат будет содержать:

Using Graal compiler configuration 'community' ..... 
...