jcmd

NicolasFränkel最近在博客文章“ 行业工具OpenJDK 11 ”中发布了与OpenJDK 11一起提供的命令行工具的调查。 在那篇文章中,他简要总结了工具jps (一个JVM进程状态工具 ), jinfo (一个JVM配置详细信息 ), jmap ( 堆上的类/对象 ), jstack ( 线程分析 )和图形工具JConsole ( 监视Java应用程序 )。 。

所有这些工具都非常方便Java开发人员意识到可以根据需要进行应用,Fränkel的帖子为这些工具的新手提供了很好的介绍性概述。 近年来,正如我在“ jcmd:一个 ” 一文中所讨论的,我已经转向使用单个jcmd工具代替大多数其他命令行工具(尽管它并不能以任何方式代替图形工具JConsole)。 JDK命令行工具可以全部统治 。”

关于与jcmd / r / java subreddit线程与单个工具进行了简短的讨论。 我可以看到两种方法的优点(使用jcmd或使用多个单独的工具)。 我对比了我对它们相对优势和劣势的看法。

jcmd与其余
jcmd 其他工具
单一互动工具 具有不同名称和选项的不同工具
由于具有交互性,因此运行功能需要更多的击键/命令 对于熟悉命令和选项的人员以及给定的JVM进程支持所使用的命令/选项的情况,所需的击键次数更少
jcmd <pid> help提供了该JVM进程支持的特定功能以进行jcmd分析 针对JVM进程运行单个工具的结果是检测该工具对该进程的支持(或缺乏)的主要方法
仅支持某些个别工具的最常用功能子集 每个工具的性质都为支持功能设置了标准
更新,在线资源更少 较旧,具有更多在线资源
不视为“实验性” 几个单独的工具( jpsjinfojmapjstack等)被标记为“实验性”,并且可能会更改/删除(“ 工具参考”指出“ 实验工具不受支持,应在具有这种理解的情况下使用。它们可能不会可以在将来的JDK版本中使用。其中一些工具当前在Windows平台上不可用。”)
可以通过DiagnosticCommandMBean以 编程 jcmd提供重要的jcmd详细信息 个别工具很少有直接对应的编程访问权限

是使用jcmd还是使用单个工具之一,很大程度上取决于个人喜好和偏好。 那些已经使用过现有单个工具的人可能会喜欢那些工具中的更直接的方法,而那些不熟悉单个工具的人可能会喜欢jcmd提供的交互功能来确定哪些工具和选项可用。 我当然更喜欢非实验性工具,而不是“实验性”工具,但是对于许多版本的JDK,这些工具中的许多都被标记为“实验性”,并且仍然存在。

前面提到的博客文章“ jcmd:一个全部统治他们的JDK命令行工具 ”描述了如何使用jcmd的交互功能来标识其支持各种JVM进程的功能。 在该帖子的末尾有一张表格,将jcmd选项“映射”到一些相应的单个工具的命令和选项。 为了方便起见,我在这里复制。

功能性 jcmd 类似工具
列出Java进程 jcmd jps -lm
堆转储 jcmd <pid> GC.heap_dump jmap -dump <pid>
堆使用直方图 jcmd <pid> GC.class_histogram jmap -histo <pid>
线程转储 jcmd <pid> Thread.print jstack <pid>
列出系统属性 jcmd <pid> VM.system_properties jinfo -sysprops <pid>
列出VM标志 jcmd <pid> VM.flags jinfo -flags <pid>

jcmd工具继续得到增强。 JDK 9通过JEP 228 (“添加更多诊断命令”)对jcmd进行了一些增强。 在JDK 11中,对显示类加载器层次结构的支持已添加到jcmd 。 这是对类加载器层次结构的支持的简单屏幕快照。


正如Fränkel在其文章中总结的那样: “ JDK提供了许多现成的工具来帮助开发人员”,并且“它们在开发人员的日常工作中是一笔巨大的财富。” 无论选择使用单个JDK提供的工具还是选择使用jcmd这种观点都适用。

翻译自: https://www.javacodegeeks.com/2019/02/jcmd-circa-jdk-11.html

jcmd

jcmd_jcmd,大约JDK 11相关推荐

  1. 还没用上 JDK 11吧,JDK 12 早期访问构建版使用

    JDK 更新速度快的飞起,JDK 12 早期访问构建版已发布,你现在用到了第几版本? 本周Java的最大新闻可能是JDK 11的正式发布.不过在 6 月底,JDK 11 就已经进入了 Rampdown ...

  2. 腾讯 JDK 11 正式开源,高性能、太牛逼啦!

    点击关注公众号,Java干货及时送达 大家好,我是基基. 今天,基基,跟大家分享一下,腾讯2021年开源的 JDK11 ,腾讯大数据JVM团队在Kona JDK11开源项目中,坚持了一贯的兼容性.可靠 ...

  3. JDK 11版本时间表

    \ 看新闻很累?看技术新闻更累?试试下载InfoQ手机客户端,每天上下班路上听新闻,有趣还有料! \ \\ 在JDK 10发布两天之后,Oracle Java平台组首席架构师Mark Reinhold ...

  4. Java JDK 11:现在可以使用所有新功能

    为什么80%的码农都做不了架构师?>>>    删除了CORBA,Java EE和JavaFX支持,但添加了十几个主要新功能 目录 哪里可以下载JDK 11 Java 11 JDK中 ...

  5. JDK 11 马上就要来了!JDK 12 还会远吗?

    开发四年只会写业务代码,分布式高并发都不会还做程序员?   JDK 11 发布时间马上到来,于此同时,JDK 12 发布时间也已确定 -- 2019年3月19日.是的,6个月之后又能迎来新版本了! 甲 ...

  6. java11模块化开发_【JDK 11】关于 Java 模块系统,看这一篇就够了

    继 2014 年 3 月 Java 8 发布之后,时隔 4 年,2018 年 9 月,Java 11 如期发布,其间间隔了 Java 9 和 Java 10 两个非LTS(Long Term Supp ...

  7. openjdk和jdk_JDK 11:发行候选更新和OpenJDK JDK 11 LTS

    openjdk和jdk JDK 11 计划于 2018年9月25日星期二发布,以实现全面可用性 .OpenJDK jdk-dev邮件列表上的Mark Reinhold消息于2018 年8月16日宣布& ...

  8. jdk8读取文件_用于从文件读取/写入文件的新JDK 11文件方法

    jdk8读取文件 我之前的文章重点讨论了可能添加到JDK 11中的Files.isSameContent()方法. JDK-8201276 ["(fs)向文件添加方法以从文件读取字符串或向文 ...

  9. switch字符串jdk_应用新的JDK 11字符串方法

    switch字符串jdk 在" 使用JDK 11的Java字符串上的新方法 "和" String#repeat即将加入Java? ",我讨论了JDK 11引入J ...

最新文章

  1. Python 进阶 — 创建本地 PyPI 仓库与 Python 程序的离线部署
  2. ***组网不用愁之1-中小企业***网络组建应用实录
  3. 如何让springboot中的某些html文件不经过thymeleaf模板解析?
  4. mysql 锁 会话_MySQL会话锁等待关系原理
  5. 计算机辅助设计A卷,《计算机辅助设计》考试试卷A.doc
  6. Web Service和Servlet的区别
  7. 散度与梯度在图像中的应用
  8. 深度学习《CGAN新认识》
  9. 把UltraEdit改造成VC
  10. php判断浏览器和语言
  11. 【渝粤教育】国家开放大学2018年春季 0195-22T机械设计基础 参考试题
  12. 什么是 1号信令、7号信令和PRI信令?
  13. 工具-IDM(Google浏览器下载插件)
  14. 计算机财务管理模型组成要素,计算机财务管理复习
  15. java于网络:P2P聊天系统
  16. 计算机应用技术题,计算机应用技术复习题.doc
  17. 使用YASM编程 - 01
  18. Python学习实践 | speech智能语音模块
  19. c#如何实现软件授权后才能使用?
  20. 干货!ERP在企业财务管理中的应用问题分析与解决办法

热门文章

  1. 牛客题霸 [三个数的最大乘积]C++题解/答案
  2. 专题突破一之分块——Untitled Problem II,Balanced Lineup,[ioi2009]Regions
  3. [CF/AT]各大网站网赛 体验部部长第一季度工作报告
  4. [dsu on tree]树上启发式合并总结(算法思想及模板附例题练习)
  5. P7294-[USACO21JAN]Minimum Cost Paths P【单调栈】
  6. P7045-[MCOI-03]金牌【构造,交互题】
  7. jzoj6293-迷宫【ddp,线段树,矩阵乘法】
  8. 纪中2019(上)游记+总结
  9. 【LCT】魔法森林(P2387)
  10. 依存句法分析的任务以及形式化定义