无法以-XX:NativeMemoryTracking = summary开头的Java进程识别命令VM.native_memory

问题描述

我的环境是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)。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...