java -XX:+PrintCompilation <class name> 不显示任何编译输出

问题描述

我按照一些 Java 课程材料运行了以下示例 Java 类。一开始,我能够在控制台中看到编译输出。从某个时候开始,'-XX:+PrintCompilation' 开始不显示任何编译日志输出。有什么想法吗?

➜  bin java -XX:+PrintCompilation Main 50
[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233]
Elapsed time was 2ms.

我的java版本:

➜  bin java -version
openjdk version "1.8.0_252"
OpenJDK Runtime Environment (build 1.8.0_252-b09)
Eclipse OpenJ9 VM (build openj9-0.20.0,JRE 1.8.0 Mac OS X amd64-64-Bit Compressed References 20200416_527 (JIT enabled,AOT enabled)
OpenJ9   - 05fa2d361
omr      - d4365f371
JCL      - cfa47e66cd based on jdk8u252-b09)

解决方法

-XX:+PrintCompilation 是 HotSpot JVM 的一个选项。不过,您使用的是 OpenJ9 VM。

要在 OpenJ9 中记录 JIT 编译,请使用 -Xjit:verbose