jcmd_jcmd,大约JDK 11

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 。 这是对类加载器层次结构的支持的简单屏幕快照。

大约JDK 11

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

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

jcmd

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/332566.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vscode 运行vue_Vue初体验

Vue的引入要使用 Vue&#xff0c;我们可以直接在 Vue.js 的官网直接下载 vue.min.js 文件&#xff0c;然后在 HTML 页面中通过 <script> 标签来引入这个文件。下载地址为&#xff1a;https://vuejs.org/js/vue.min.js。引入格式如下所示&#xff0c;其中 path 是文件所在…

android图标随着进度条动画,Android开发之ProgressBar字体随着进度条的加载而滚动...

在网上翻阅了很多关于ProgressBar滚动效果&#xff0c;但是始终没有找到适合项目中的这种效果&#xff0c;故自己写这篇文章&#xff0c;记录一下写作过程&#xff0c;给大家做一个参考。先看下最终效果效果图我这里用的是LICEcap软件录制的gif图&#xff0c;效果有点掉帧&…

spark ui_Spark UI的见解

spark ui作为apache-spark-job解剖的后续文章&#xff0c;我将分享您如何使用Spark UI进行作业调整。 我将继续使用先前文章中使用的相同示例&#xff0c;新的spark应用程序将在以下方面完成工作 –阅读纽约市停车票 –通过“板ID”进行汇总并计算违规日期 –保存结果 此代…

Android布局加载慢,Android布局优化(四)X2C — 提升布局加载速度200%

系列文章前言在Android布局优化(一)从布局加载原理说起中我们说到了布局加载的两大性能瓶颈&#xff0c;通过IO操作将XML加载到内存中并进行解析和通过反射创建View。这里介绍一种避免运行时通过IO操作读取布局文件的“黑科技”—X2C。个人认为这个技术在实际项目中使用可能会需…

api 获取网络使用情况_您的API是什么情况?

api 获取网络使用情况免责声明&#xff1a;在纯REST中&#xff0c;API是不透明的&#xff0c;URL应该是对先前请求的响应中作为链接发送的内容。 但是&#xff0c;我不是在讲纯REST&#xff0c;而是在讲更实用的API&#xff0c;其中涉及REST的一些概念以及通用的API最佳实践。 …

判断字符串是不是application/x-www-form-urlencoded字符串(URL编码格式的字符串)

import java.util.BitSet;/*** 判断一个字符串是不是URL编码字符串的工具类&#xff0c;即判断字符串是不是application/x-www-form-urlencoded字符串** author liaowenxiong* date 2022/1/14 11:32*/public class URLEncodeUtils {private static BitSet bitSet;static {bitSe…

数据查询和业务流分开_传统数仓和大数据数仓的区别是什么?

概念与容器为什么先说这个&#xff0c;其实很简单&#xff1a;因为绝大多数人都把这两个概念混为一谈。然后就会出现各种各样的问题&#xff1a;oracle不是数据库么&#xff0c;怎么又是数据仓库&#xff1f;Hive不是数据仓库么&#xff1f;怎么又是数据库&#xff1f;数据仓库…

android 多语言不起作用,Android本地化语言环境不起作用,所有区域代码都存在问题...

我需要将除瑞士之类的子语言环境添加到我的应用程序中,而不是普通的德语.我找到的德语资源文件夹的语言环境扩展名为de.所以我的文件夹名为“values-de”.这很好.然后我添加了“values-de_CH”并继续收到错误“无效的资源目录名称”.我也试过“values-de_rCH”和“values-de_ch…

aws 性能_AWS上的应用程序自动扩展–选项和对性能的影响

aws 性能至关重要的是扩展软件应用程序&#xff0c;以避免由于网站的客户群或需要处理大型数据集的应用程序等导致的工作负载增加而导致性能瓶颈的情况。云服务提供商通常是访问其他应用程序的最佳方法随需应变的资源&#xff0c;可根据应用程序的负载变化来放大或缩小。 1.什…

java中月日年这种怎么转换成年月日_最“热乎”的Java社招面试经历分享(共40个面试题)...

面试时间&#xff1a;2020年10月12日1、final finally finalize的区别2、synchronized关键字的作用以及在什么时候使用&#xff0c;concurrent包里面其它的锁。3、有遇到过死锁的问题吗&#xff1f;(死锁的原理和解决方法)4、hashmap的实现原理&#xff0c;hashmap和hashtable的…

(案例)使用Cookie保存用户最后一次访问的时间

文章目录需求分析示例代码需求 1.访问一个Servlet&#xff0c;如果获取不到上一次访问的时间&#xff0c;则提示&#xff1a;您好&#xff0c;欢迎访问。 2.如果可以获取上一次访问的时间&#xff0c;则提示&#xff1a;您好&#xff0c;欢迎回来&#xff0c;您上次访问时间为…

aws lambda使用_使用AWS Lambda,S3和AWS CloudFront进行动态内容缓存

aws lambda使用快速提供内容对于任何网站或应用程序具有更好的客户体验都是必不可少的。 如果您将网站或应用程序托管在AWS Cloud中&#xff0c;那么无论从何处访问应用程序&#xff0c;都可以以较低的延迟快速提供内容。 AWS提供了CloudFront服务&#xff0c;用于将内容缓存在…

android+阴影+xml,Android 阴影视图 ShadowViewHelper

软件介绍ShadowViewHelper 是 Android 的阴影布局。xml:android:id"id/activity_main_shadow_view_b"android:layout_width"wrap_content" android:layout_height"wrap_content"android:layout_gravity"center"android:layout_marginT…

docker-compose观察实时日志_基于 Flink SQL CDC 的实时数据同步方案

整理&#xff1a;陈政羽(Flink 社区志愿者) Flink 1.11 引入了 Flink SQL CDC&#xff0c;CDC 能给我们数据和业务间能带来什么变化&#xff1f;本文由 Apache Flink PMC&#xff0c;阿里巴巴技术专家伍翀 (云邪)分享&#xff0c;内容将从传统的数据同步方案&#xff0c;基于 F…

android dialog 字体,android – 为AlertDialog的MultiSelectItems设置自定义字体(字体)

AlertDialog.Builder使用AlertController.AlertParams构建对话框.我检查了AlertDialog.Builder #create()调用AlertController.AlertParams #application()如果设置了项目,则创建ListView并分配适配器(AlertParams#createListView()).我基于createListView源创建了自定义适配器…

困难是成功路上的垫脚石_Java是开发的垫脚石。 学习吧!

困难是成功路上的垫脚石Java是全世界使用最广泛的编程语言之一 。 尽管也有很多其他编程语言&#xff0c;但是没有什么可以比Java更好的了。 Java是用于开发移动应用程序&#xff0c;游戏&#xff0c;Web应用程序&#xff0c;桌面应用程序和许多其他令人兴奋的事物的出色语言之…

python 3.6.5 shell_Linux 安装 Python3.6.5

1. 安装依赖环境 yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel 2. 下载 Python 3.6.5 wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz 3. 创建安装…

你真的会用Mac中的Finder吗?

参加&#xff1a;https://zhuanlan.zhihu.com/p/144139903

用c语言实现mfc系统,MFC实现学生选课系统

本文实例为大家分享了MFC实现学生选课系统的具体代码&#xff0c;供大家参考&#xff0c;具体内容如下先上效果图&#xff1a;主要功能&#xff1a;输入学号&#xff0c;从数据库中查找学号&#xff0c;若找到相匹配的学号&#xff0c;则显示数据库中姓名、学历、导师&#xff…