OpenJ9和Hotspot对照 您所在的位置:网站首页 openJ9下载界面为什么点不了 OpenJ9和Hotspot对照

OpenJ9和Hotspot对照

2023-11-20 16:21| 来源: 网络整理| 查看: 265

命令行参数

尽管 OpenJ9 实现了自己的命令行界面,但 VM 会识别并接受许多热点选项以实现兼容性。默认情况下,VM 无法识别的任何选项都将被忽略,从而防止应用程序无法启动。您可以使用: -XX:-IgnoreUnrecognizedXXColonOptions关闭此行为

OpenJ9兼容选项

OpenJ9 兼容 HotSpot 的以下参数,可不做任何变更直接在 OpenJ9 上使用。

Option

Usage

-X 

显示有关非标准选项的帮助。

-Xbootclasspath 

指定引导类和资源的搜索路径。

-Xcheck 

在 VM 启动期间运行对 JNI 函数的其他检查。

-Xfuture 

启用严格的类文件格式检查。

-Xint

在仅解释模式下运行应用程序。

-Xlog

启用垃圾回收日志记录的某些形式将被识别。

-Xmn

设置 -Xgcpolicy:gencon 时新区域的初始大小和最大大小。

-Xms 

设置堆的初始大小。

-Xmx 

指定对象内存分配池的最大大小。

-Xnoclassgc 

禁用类垃圾回收 (GC)。

-Xrs

防止 OpenJ9 运行时环境处理信号。

-Xss 

设置 Java线程堆栈大小。

-Xverify:mode 

启用或禁用验证程序。

-XX:ConcGCThreads 

配置 GC 突变器后台线程的数量。

-XX:[+|-]AlwaysPreTouch 

在初始堆膨胀或堆扩展期间启用/禁用内存提交。

-XX:[+|-]CompactStrings 

启用/禁用压缩。

jdk16+

-XX:DiagnoseSyncOnValueBasedClasses

为基于值的类配置警告。

-XX:[+|-]DisableExplicitGC 

启用/禁用显式调用。

-XX:[+|-]ExitOnOutOfMemoryError 

在内存不足时触发 VM 关闭。

-XX:[+|-]HeapDumpOnOutOfMemory 

启用/禁用内存不足情况下的转储。

-XX:HeapDumpPath 

指定所有 VM 转储(包括堆转储、javacore 和系统转储)的目录。

-XX:[+|-]IgnoreUnrecognizedVMOptions 

指定是否忽略无法识别的顶级 VM 选项。

-XX:MaxHeapSize 

设置堆的初始大小。

-XX:MaxRAMPercentage 

将 Java 堆的初始大小设置为占总内存的百分比。

-XX:MaxHeapSize 

设置可为所有直接字节缓冲区保留的内存量限制。

-XX:MaxRAMPercentage 

将 Java 堆的最大大小设置为占总内存的百分比。

-XX:MaxDirectMemorySize 

在引发 时运行指定的命令。

-XX:MaxHeapSize 

指定对象内存分配池的最大大小。

-XX:MaxRAMPercentage 

将 Java 堆的最大大小设置为占总内存的百分比。

-XX:OnOutOfMemoryError 

在引发 时运行指定的命令。

-XX:ParallelCMSThreads 

配置 GC 突变器后台线程的数量。

-XX:ParallelGCThreads 

配置 GC 线程数。

-XX:[+|-]PrintCodeCache 

在应用程序退出时打印代码缓存使用情况。

-XX:[+|-]ShowHiddenFrames 

指定是否在堆栈跟踪中显示生成的隐藏帧。

-XX:[+|-]UseCompressedOops 

禁用 64 位 JVM 中的压缩引用

-XX:[+|-]UseContainerSupport 

当 VM 检测到 Java 堆在容器中运行时,将较大的内存比例设置为 Java 堆。

等效选项

HotSpot Option

OpenJ9 Option

Usage

-Xcomp

-Xnojit 

禁用解释性方法调用

-Xgc

-Xgcpolicy 

配置垃圾回收策略

-XX:+UseNUMA

-Xnuma:none 

控制非一致性内存结构感知

工具 jcmd:使用该工具在指定的 VM 上运行诊断命 jcmd [] [ ]

options

Hotspot

OpenJ9

注释

-J

为运行命令的 Java 虚拟机提供参数

-h

打印帮助

-f

×

从文件中读取并执行命令

-l

列出本机jvm进程

OpenJ9特殊的参数

arguments

注释

Dump.heap

创建堆转储文件

Dump.java

创建一个javacore文件

Dump.snap

转储跟踪缓冲区的快照。

Dump.system

创建一个系统转储文件

GC.class_histogram

获取java进程的堆信息

GC.heap_dump

创建堆转储文件

GC.run

运行垃圾收集器

Thread.print

展示线程信息

jstat.class

展示JVM类加载器数据

例如:

$ jcmd -l 3112 openj9.tools.attach.diagnostics.tools.Jcmd -l 3924 com.zhongan.platform.demo.PerformanceClientApplication $ jcmd 3924 help Dump.heap Dump.java Dump.snap Dump.system GC.class_histogram GC.heap_dump GC.run Thread.print help jstat.class jmap:使用该工具获取特定 Java™ 进程的内存信息或进程列表 jmap [] []

options

Hotspot

OpenJ9

注释

-histo

打印有关堆上类的统计信息,包括对象数及其聚合大小

-histo:live

仅打印活动对象的统计信息

-J

为运行命令的 Java 虚拟机提供参数

-dump

×

生成堆转储快照

-finalizerinfo

×

显示在等待Finalizer线程执行finalizer方法的对象

-heap

×

显示Java堆详细信息

-F

×

当-dump没有响应时,强制生成dump快照

例如:

$ jmap -histo:live 17592 num object count total size class name ------------------------------------------------- 1 52999 2119960 [C 2 2953 1559184 [S 3 12888 1134144 java.lang.reflect.Method 4 10777 1034592 java.lang.Class 5 39194 940656 java.util.concurrent.ConcurrentHashMap$Node 6 55649 890384 java.lang.String 7 9541 763280 [Ljava.util.HashMap$Node; 8 16871 674840 java.lang.Class$ReflectRef 9 18965 606880 java.util.LinkedHashMap$Entry ... jps:使用该工具查询正在运行的 Java 进程。该工具显示当前主机上当前用户标识拥有的每个 Java 进程的信息。 jps []

options

Hotspot

OpenJ9

注释

-l

打印应用程序包名称

-q

不显示主类名称、JAR文件名和传递给主方法的参数,只显示本地虚拟机唯一ID。

-m

显示Java虚拟机启动时传递给main()方法的参数。

-v

显示Java虚拟机启动时传递的JVM参数。

-V

×

不显示主类名称、JAR文件名和传递给主方法的参数,只显示本地虚拟机唯一ID。

-J

为运行命令的 Java 虚拟机提供参数

例如:

$ jps -l 5462 org.foo.bar.MyApplication 14332 openj9.tools.attach.diagnostics.Jps $ jps -q 5462 14332 jstat:使用该工具获取 Java 虚拟机 (JVM) 统计信息。 jstat [] []

options

Hotspot

OpenJ9

注释

-class

显示类加载统计信息

-compiler

×

HotSpt JIT编译器行为统计

-gc

×

垃圾回收堆的行为统计

-gccapacity

×

各个垃圾回收代容量和他们相应的空间统计

-gcutil

×

垃圾回收统计概述

-gccause

×

垃圾收集统计概述,附加最近两次垃圾回收事件的原因

-gcnew

×

新生代行为统计

-gcnewcapacity

×

新生代与其相应的内存空间的统计

-gcold

×

年老代和永生代行为统计

-gcoldcapacity

×

年老代行为统计

-gcpermcapacity

×

永生代行为统计

例如

$ jstat -class 17592 Class Loaded Class Unloaded 10800 4 jstack:使用该工具获取进程的 Java 堆栈跟踪和线程信息。 jstack * *

options

Hotspot

OpenJ9

注释

-F

×

当正常输出请求不被响应时,强制输出线程堆栈

-l

打印更详细的输出,包括有关锁的信息

-m

×

如果调用到本地方法的话,可以显示C/C++的堆栈

-p

×

打印进程的系统和代理属性

-h

打印帮助信息

-J

×

为运行命令的 Java 虚拟机提供参数

例如

$ jstack -p 17592 2023-02-28T10:58:08.875 Virtual machine: 17592 JVM information: JRE 1.8.0 Windows 10 amd64-64-Bit Compressed References 20230207_599 (JIT enabled, AOT enabled) OpenJ9 - e68fb241f OMR - f491bbf6f JCL - eebde685ec based on jdk8u362-b09 "JIT Compilation Thread-000" Id=4 RUNNABLE "JIT Compilation Thread-001" Id=5 RUNNABLE "JIT Compilation Thread-002 Suspended" Id=6 RUNNABLE "JIT Compilation Thread-003 Suspended" Id=7 RUNNABLE "JIT Compilation Thread-004 Suspended" Id=8 RUNNABLE "JIT Compilation Thread-005 Suspended" Id=9 RUNNABLE "JIT Compilation Thread-006 Suspended" Id=10 RUNNABLE "JIT Diagnostic Compilation Thread-007 Suspended" Id=11 RUNNABLE "JIT-SamplerThread" Id=12 TIMED_WAITING "IProfiler" Id=13 RUNNABLE "RMI TCP Accept-0" Id=3 RUNNABLE at java.net.DualStackPlainSocketImpl.accept0(Native Method) at java.net.DualStackPlainSocketImpl.socketAccept(DualStackPlainSocketImpl.java:131) at java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:409) at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:199) - locked java.net.SocksSocketImpl@bd454f07 at java.net.ServerSocket.implAccept(ServerSocket.java:560) at java.net.ServerSocket.accept(ServerSocket.java:528) at sun.management.jmxremote.LocalRMIServerSocketFactory$1.accept(LocalRMIServerSocketFactory.java:52) at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(TCPTransport.java:405) at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(TCPTransport.java:377) at java.lang.Thread.run(Thread.java:826) "Finalizer thread" Id=14 RUNNABLE ... java.vm.name=Eclipse OpenJ9 VM com.ibm.oti.shared.enabled=false com.ibm.vm.bitmode=64 file.encoding=UTF-8 csp.sentinel.charset=UTF-8 csp.sentinel.flow.cold.factor=3 com.ibm.oti.configuration=scar java.specification.version=1.8 intellij.debug.agent=true Agent properties: com.sun.management.jmxremote.localConnectorAddress=service:jmx:rmi://127.0.0.1/stub/rO0ABXN9AAAAAQAlamF2YXgubWFuYWdlbWVudC5yZW1vdGUucm1pLlJNSVNlcnZlcnhy ABdqYXZhLmxhbmcucmVmbGVjdC5Qcm94eeEn2iDMEEPLAgABTAABaHQAJUxqYXZhL2xhbmcvcmVmbGVjdC9JbnZvY2F0aW9uSGFuZGxlcjt4cHNyAC1qYXZhLnJtaS5zZXJ2ZXIuUmVtb3RlT2JqZWN0 SW52b2NhdGlvbkhhbmRsZXIAAAAAAAAAAgIAAHhyABxqYXZhLnJtaS5zZXJ2ZXIuUmVtb3RlT2JqZWN002G0kQxhMx4DAAB4cHc5AAtVbmljYXN0UmVmMgAADjE5Mi4xNjguNDQuMTA3AADE1JTwWTD2 VXzjOmidUwAAAYaVxf50gAEAeA== sun.java.command=com.zhongan.platform.demo.PerformanceClientApplication arthas

openj9默认策略gencon可以使用arthas。

openj9启用balanced策略时使用arthas有bug。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有