OpenJ9和Hotspot对照 | 您所在的位置:网站首页 › openJ9下载界面为什么点不了 › OpenJ9和Hotspot对照 |
命令行参数
尽管 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 arthasopenj9默认策略gencon可以使用arthas。 openj9启用balanced策略时使用arthas有bug。 |
CopyRight 2018-2019 实验室设备网 版权所有 |