技术支持 东莞网站建设母婴护理河南建筑工程信息
news/
2025/9/24 5:57:54/
文章来源:
技术支持 东莞网站建设母婴护理,河南建筑工程信息,海东市公司网站建设,html5个人网页完整代码我在过去的几篇文章中都引用了方便的JDK工具jcmd #xff0c;但是像我以前对jps所做的那样#xff0c;仅专注于其实用性 。 jcmd工具是随Oracle Java 7引入的#xff0c;在通过使用Java标识Java进程的ID #xff08;与jps相似#xff09;#xff0c;获取堆转储 #xff… 我在过去的几篇文章中都引用了方便的JDK工具jcmd 但是像我以前对jps所做的那样仅专注于其实用性 。 jcmd工具是随Oracle Java 7引入的在通过使用Java标识Java进程的ID 与jps相似获取堆转储 与jmap相似获取线程转储 与jstack相似来解决 JVM应用程序 问题方面特别有用。 查看虚拟机特征例如系统属性和命令行标志类似于jinfo 并获取垃圾回收统计信息类似于jstat 。 jcmd工具被称为“ 用于调查和解决JVM应用程序问题的瑞士军刀 ”和“ 隐藏的宝石” 。 在使用大多数JDK命令行工具包括jcmd 时标识要为其使用命令行工具的Java进程的进程IDpid通常很重要。 只需运行不带任何参数的命令使用jcmd即可轻松完成此操作如下一个屏幕快照所示。 在上面的示例中运行不带参数的jcmd显示了两个正在运行的Java进程 jcmd自身的pid为324另一个Java进程的pid为7268。 请注意尽管在列出Java进程时jcmd工作原理与jps非常相似但与没有参数-lm jps相比 jcmd列出的信息更多。 运行jcmd -h用于显示帮助和用法信息jcmd在下一屏幕快照证明。 如刚刚所示该帮助说明jcmd在“未给出任何选项”时“列出Java进程”。 帮助还指出这是类似于运行行为jcmd -p 但我认为它的意思是说运行jcmd不带选项相当于跑步jcmd -l 这是在接下来的屏幕快照所示。 就像在不带任何选项的情况下运行jcmd jcmd -l列出了Java进程及其各自的pid。 本例中的pids不同因为它是jcmd的不同执行 jcmd我运行的Java进程也不同。 运行jcmd -h显示相对较少的选项。 要查看jcmd支持的许多功能的帮助需要询问jcmd特定Java进程支持哪些功能。 下一个屏幕快照对此进行了说明。 我首先运行不带选项的jcmd来发现感兴趣的Java进程的pid在本例中为6320。 然后我可以运行jcmd 6320 help来查看jcmd支持哪些命令。 上一个屏幕快照演示了jcmd支持pid标识的特定Java VM的命令。 具体来说它指出“以下命令可用”然后列出它们 JFR停止 启动JFR JFR转储 JFR。检查 VM.native_memory VM.check_commercial_features VM.unlock_commercial_features 管理代理停止 ManagementAgent.start_local ManagementAgent.start GC.rotate_log GC.class_stats GC.class_histogram GC.heap_dump GC.run_finalization GC运行 线程打印 虚拟机正常运行时间 虚拟机标志 VM.system_properties VM.command_line 虚拟机版本 帮帮我 当针对另一个Java VM进程的pid运行jcmd pid help 可能会获得不同的可用命令列表。 下一个屏幕快照中jcmd 1216 help进行了说明当针对该进程的pid为1216执行jcmd 1216 help时。 通过比较最后两个屏幕快照可以清楚地看到jcmd支持针对不同Java VM实例的不同命令。 这就是为什么通过在help命令中指定pid列出特定VM支持的命令的原因。 未针对原始检查的VM列出的第二个VM可用的一些命令在这种情况下为pid 1216包括以下命令 VM.log 管理代理状态 Compiler.directives_clear Compiler.directives_remove Compiler.directives_add Compiler.directives_print VM.print_touched_methods 编译器 编译器代码清单 编译器队列 VM.classloader_stats JVMTI.data_dump VM.stringtable 虚拟机 VM.class_hierarchy GC.finalizer_info GC.heap_info VM.info VM.dynlibs VM.set_flag 该“帮助”还建议“有关特定命令的更多信息请使用help command。” 在下一个针对jcmd的Thread.print屏幕快照中说明了jcmd 。 在讨论jcmd Thread.print命令的主题时是一个很好的时机来说明如何使用它来查看Java进程的线程堆栈。 下一个屏幕快照显示了执行jcmd pid Thread.print 在本例中为pid 6320的Java进程时看到的结果要冗长得多的开始。 jcmd支持多个VM.*命令 VM.version VM.uptime VM.command_line VM.flags VM.system_properties VM.native_memory和VM.classloader_stats 。 下一个屏幕快照说明了对于使用pid 6320的Java进程使用jcmd pid VM.version和jcmd pid VM.uptime的情况。 下一个屏幕快照演示了jcmd pid VM.command_line使用pid 6320来执行jcmd pid VM.command_line 。 从该屏幕快照其中显示了运行jcmd 6320 VM.command_line的输出的顶部中我们可以从提供给该进程的JVM命令行参数中看到它是与NetBeans相关的进程。 使用pid 6320对Java进程运行命令jcmd pid VM.flags显示传递给该进程的HotSpot选项。 可以使用jcmd pid VM.system_properties列出Java进程使用的系统属性这将在下一个屏幕快照中进行说明。 当尝试对尚未启用本机内存跟踪 NMT的Java进程运行jcmd pid VM.native_memory 将显示错误消息“未启用本机内存跟踪”如下一个屏幕快照所示。 要使用命令jcmd pid VM.native_memory 应使用-XX:NativeMemoryTrackingsummary或-XX:NativeMemoryTrackingdetail选项启动要测量的JVMJava进程。 使用这些选项之一启动VM后就可以对该JVM进程执行命令jcmd pid VM.native_memory baseline 然后执行jcmd pid VM.native_memory detail.diff 。 jcmd pid VM.classloader_stats命令可提供对类加载器的了解。 下一个针对pid 1216的Java进程的屏幕快照中显示了该快照 jcmd pid VM.class_hierarchy是一个有趣的命令可打印在目标Java VM进程中加载的类的层次结构。 jcmd pid VM.dynlibs可用于查看动态库信息。 在针对使用pid 1216的Java进程执行时的下一个屏幕快照中对此进行了演示。 jcmd pid VM.info列出了许多有关目标Java VM进程的信息包括VM摘要以及有关该进程垃圾收集事件动态库提供给VM的参数以及主机某些特征的信息。机。 在jcmd 1216 VM.info的下一个屏幕快照中演示了此输出开始的一小部分 下一个屏幕快照展示了jcmd pid VM.stringtable和jcmd pid VM.symboltable 下一个屏幕快照中演示了jcmd pid Compiler.directives_print使用。 jcmd支持的几个命令支持管理和监视垃圾收集。 其中两个是jcmd pid GC.run [类似于System.gc ]和jcmd pid GC.run_finalization [类似于System.runFinalization ]。 在下一个屏幕快照中将演示其中的两个。 命令jcmd pid GC.class_histogram提供了一种方便的方法来查看对象直方图 如下一个屏幕快照所示。 jcmd可用于通过jcmd pid GC.heap_dump filename针对正在运行的Java VM生jcmd pid GC.heap_dump filename转储这将在下一个屏幕快照中进行演示。 现在可以使用jhat命令来处理jcmd生成的堆转储如以下两个屏幕快照所示。 有些jcmd命令仅适用于使用-XX:UnlockDiagnosticVMOptions JVM标志启动的Java VM。 下一个屏幕快照演示了当我尝试针对未以-XX:UnlockDiagnosticVMOptions标志启动的Java VM运行jcmd pid GC.class_stats时发生的情况。 使用-XX:UnlockDiagnosticVMOptions启动目标VM时 jcmd pid GC.class_stats显示“ 有关Java类元数据的统计信息 ”。 这篇文章介绍了jcmd提供的一些命令但没有涉及与Java Flight Recorder [ JFR ]名称以JFR.*开头的命令相关的功能以检查并启用商业功能 jcmd pid VM.check_commercial_features和jcmd pid VM.unlock_commercial_features 。 在一个命令行工具中 jcmd汇集了几个命令行JDK工具的功能。 这篇文章演示了jcmd提供的一些功能。 翻译自: https://www.javacodegeeks.com/2016/03/jcmd-one-jdk-command-line-tool-rule.html
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/915017.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!