以 -XX:NativeMemoryTracking=summary 启动的 java 进程无法识别命令 VM.native_memory

Command VM.native_memory not recognized for java process started with -XX:NativeMemoryTracking=summary

我的环境是MacOs + Java 11:

java -version 
openjdk version "11.0.8" 2020-07-14
OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.8+10)
Eclipse OpenJ9 VM AdoptOpenJDK (build openj9-0.21.0, JRE 11 Mac OS X amd64-64-Bit Compressed References 20200715_677 (JIT enabled, AOT enabled)
OpenJ9   - 34cf4c075
OMR      - 113e54219
JCL      - 95bb504fbb based on jdk-11.0.8+10)

我正在启动带有 -XX:NativeMemoryTracking=summary 标志的 Java 程序。

当我尝试访问本机内存摘要时出现错误:

jcmd 31395 VM.native_memory summary
Error: Error in command
Command VM.native_memory,summary not recognized

如果我列出进程的所有可用命令,我得到:

jcmd 31395 help
Dump.heap
Dump.java
Dump.snap
Dump.system
GC.class_histogram
GC.heap_dump
GC.run
Thread.print
help
jstat.class

我需要的命令不可用。为什么不在那里?如何启用它?

本机内存跟踪是 Oracle HotSpot JVM 的一个特性。您正在使用 IBM J9 JVM(或更准确地说,是基于 Eclipse OMR 构建的开源变体 Eclipse OpenJ9)。