jvm jinfo 参数_jinfo:JVM运行时配置的命令行浏览

jvm jinfo 参数

在最近的一些博客中(特别是在对Java EE 7性能调优和优化以及WildFly性能调优的书中的评论中),我引用了自己过去在某些Oracle JDK命令行工具上的博客文章。 令我震惊的是,我从来没有专门解决过漂亮的jinfo工具,这篇文章旨在纠正这种令人不安的情况。 我怀疑我以前选择不写jinfo的原因包括我在VisualVM中讨论的与jinfo有关的限制:jinfo和So Much More 。

在我的机器上运行的jinfo的Java SE 8版本中,解决了我在“ 获取JVM运行时信息”一文中讨论的Windows上jinfo的主要限制。 特别是,我在-flags文章中指出,当时Windows版本的jinfo不支持-flags选项。 正如下一个屏幕快照所证明的,情况已不再如此(请注意,使用jps获取Java进程ID来指示jinfo进行查询)。

jinfoFlagsWorksOnWindowsWithJavaSE8批注

如上面的屏幕快照所示, jinfo -flags命令和option显示了标志,这些标志是受监视的Java进程的显式指定的JVM选项。

如果我想了解其他隐式(自动)有效的JVM标志,则可以运行java -XX:+ PrintFlagsFinal来查看所有默认的JVM选项。 然后,我可以针对正在运行的JVM进程查询其中的任何一个,以查明该特定JVM使用的是什么(相同的默认值或覆盖的不同值)。 下一个屏幕快照演示了如何通过运行java -XX:+PrintFlagsFinal提供一小部分输出。

javaPrintFlagsFinal

假设我在上面的输出中注意到一个名为PrintHeapAtGC的标志,并想知道它是否在我的特定Java应用程序中设置( -XX:+PrintHeapAtGC表示已设置, -XX:-PrintHeapAtGC表示未设置)。 我可以让jinfo告诉我它的设置是什么(请注意,在这种情况下,我选择使用jcmd而不是jps来确定Java进程ID):

jinfoPrintHeapAtGCFlag

由于冒号后和“ PrintHeapAtGC”之前的减号(-)而不是加号(+),我们知道对于具有指定ID的Java进程,此功能已关闭。 事实证明,jinfo的作用不仅仅让我们看。 这也让我们感动。 下一个屏幕快照显示了使用jinfo更改此选项。

jinfoTurningPrintGCDateStampsOffAndBackOn

如上一个屏幕快照所示,我可以通过使用相同的命令查看标志的设置来关闭和打开布尔样式的JVM选项,但是在标志名的前面加上加号(+)来打开或减去它签署(-)将其关闭。 在刚刚显示的示例中,我关闭了PrintGCDateStamps ,将其重新打开,并在这些更改之间监视其设置。 并非所有的JVM选项都是布尔条件。 在这些情况下,通过将等号(=)和标志值后面的新值串联起来,可以为其分配新值。 同样重要的是要注意目标JVM(您试图窥视并接触jinfo的目标JVM将不允许您更改其所有JVM选项设置)。 在这种情况下,您可能会看到堆栈跟踪,并显示消息“目标VM中的命令失败”。

除了显示当前正在运行的JVM的选项并允许对其中一些选项进行更改之外, jinfo还允许您将该JVM使用的系统属性视为名称/值对。 下一个屏幕快照中对此进行了演示,并显示了输出的一小部分。

jinfoSysProps

运行jinfo的最简单方法可能就是仅提供所讨论的Java进程的PID以外的任何参数,并同时显示JVM选项(非默认值和命令行)和系统属性。 运行jinfo -help提供简要的用法详细信息。 其他重要细节可在jinfo工具的Oracle文档中找到。 这些细节包括常见的提醒(涉及这些工具时),该提示是“实验性的,不受支持”,并且“将来的JDK版本可能不可用”。 我们还警告我们Windows上的jinfo需要dbgeng.dll或已安装的Windows调试工具的可用性。

尽管我之前在VisualVM:jinfo和更多内容以及获得JVM运行时信息一文中已经引用了方便的jinfo命令行工具,但它是一个足够便利的工具,足以证明它本身就是一个帖子。 作为命令行工具,它具有与命令行工具通常相关的优点,例如相对轻量级,可以很好地与脚本一起使用以及在无头环境中工作。

翻译自: https://www.javacodegeeks.com/2014/08/jinfo-command-line-peeking-at-jvm-runtime-configuration.html

jvm jinfo 参数

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

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

相关文章

matlab int 积不出,matlab – 点积:*命令与循环给出不同的结果

我在Matlab,z和beta中有两个向量.矢量z是117:1 0.430742139435890 0.257372971229541 0.0965909090909091 0.694329541928697 0 0.394960106863064 0 0.100000000000000 1 0.264704325268675 0.387774594078319 0.269207605609567 0.472226643323253 0.750000000000…

49自动化测试中最常见的硒异常

开发人员将始终在编写代码时牢记不同的场景,但是在某些情况下,实现可能无法按预期工作。 相同的原则也适用于测试代码,该代码主要用于测试现有产品的功能,发现错误以及使产品100%不受错误影响。 正确地说,…

鹰式价差matlab,鹰式期权:什么叫铁鹰式期权组合,蝶式价差期权?

蝶式期权套利 是利用 交割月份的价差进行 套期获利, 个方向相 反、 共享居中交割月份合约的跨期套利组成。是一种期权策略,风险有限,盈利也有限,是由一手牛市套利和一手熊市套利组合而成的。铁鹰式期权组合是牛市看跌价差期权组合…

angular8 rest_带有Angular JS的Java EE 7 – CRUD,REST,验证–第2部分

angular8 rest这是Angular JS承诺的Java EE 7的后续版本–第1部分 。 花了比我预期更长的时间(找到时间来准备代码和博客文章),但是终于到了! 应用程序 第1部分中的原始应用程序只是带有分页的简单列表,以及提供列表数…

php如果字符串有1 3 5,Day3-php 字符串1

字符串是由一系列字符组成,在PHP中,字符和字节一样,也就是说,一共有256种不同字符的可能性。1、字符串 定义方法字符串型可以用三种方法定义:单引号形式、双引号形式和Heredoc结构形式。单引号:不会解析变量…

带有Java Pojo作为输入输出示例的AWS Lambda函数

在上一教程中,我们看到了如何使用Java创建AWS Lambda函数,并传递了String作为输入,还返回了String作为Output。如果您是第一次创建lambda函数,我建议先阅读该教程。 在本教程中,我们将看到如何传递Java普通的旧Java对…

bing搜索php,PHP 使用bing搜索网站的api封装类用法

/*** 使用bing api搜索网站的PHP封装类** param* author 编程之家 jb51.cc jb51.cc**/class BingAPI{var $accountKey ;var $ServiceRootURL https://api.datamarket.azure.com/Bing/Search/;var $WebSearchURL;var $searchText;var $searchType;var $request_data;var $Auto…

php右侧弹窗QQ客服,JavaScript_网页右侧悬浮滚动在线qq客服代码示例,网页右侧悬浮滚动QQ在线客服 - phpStudy...

网页右侧悬浮滚动在线qq客服代码示例网页右侧悬浮滚动QQ在线客服代码function myEvent(obj,ev,fn){if (obj.attachEvent){obj.attachEvent(onev,fn);}else{obj.addEventListener(ev,fn,false);};};function getbyClass(id,sClass){var oParent document.getElementById(id);va…

测试Maven版本插件自动递增版本号

抽象 Maven版本插件是一个非常强大的工具,我在很大程度上依赖于它来协调软件版本。 通常,软件发行版本号遵循简单的1.0.0.0-SNAPSHOT格式。 但是最近我需要在版本号中添加限定符-类似于1.0-beta-SNAPSHOT或1.0.0-fix-bug-description-SNAPSHOT 。 在我第…

idea spark java,IntelliJ Idea 搭建spark 开发环境

笔者介绍的是在MAC环境下使用Idea搭建spark环境。环境:spark 2.0.0scala 2.11.8maven 3.9.9idea 151.Idea的安装.Idea可以在官网上下载。熟悉java的肯定都知道这个开发利器,可以在官网上进行下载,在此就不在赘述。有免费的和付费版本,对于我们…

optaplanner_OptaPlanner –具有真实道路距离的车辆路线

optaplanner在现实世界中,车辆路径问题(VRP)中的车辆必须走这条路:它们不能在客户之间直线行驶。 大多数VRP研究论文和演示都乐于忽略此实现细节。 和我一样,过去。 尽管使用道路距离(而不是空中距离&#…

php 转换数组为小写,PHP如何将数组键转换为小写?

在PHP中将数组键转换为小写,我们可以在不使用循环的情况下来简单实现。我们只需要使用array_change_key_case()。array_change_key_case函数有两个参数,一个为数组,另一个可以为常量“CASE_LOWER”,那么我们在做大项目的时候可能会…

带有PostgreSQL的Docker Compose for Spring Boot应用程序

在此博客文章中,您将学习如何使用PostgreSQL配置Spring Boot应用程序以与Docker Compose一起运行。 这篇博客文章涵盖: Spring Boot应用程序Dockerfile配置,在依赖关系和资源之间进行了清晰的分离 用于通过PostgreSQL运行应用程序的Docker…

java中的jpa_JPA教程–在Java SE环境中设置JPA

java中的jpaJPA代表Java Persistence API,它基本上是一个规范,描述了一种将数据持久存储到持久存储(通常是数据库)中的方法。 我们可以将其视为类似于Hibernate之类的ORM工具的东西,除了它是Java EE规范的正式组成部分…

java中给组合框加监听器,如何区分ActionEvent中的多个组合框

我有两个类,一个包含两个组合框的监听器类和一个监听两个组合框的监听器类。该软件是关于披萨的,而组合框的选择是披萨类型和数量,我会发布相关的代码。(gui class)private Listener listen new Listener();private JComboBox chooseItem n…

使用ArchUnit验证代码和体系结构约束

介绍 ArchUnit是一个用于根据一组自定义代码和体系结构约束检查Java代码的库。 这些约束可以在单元测试中的流畅Java API中定义。 ArchUnit可用于验证类或层之间的依赖关系,检查循环依赖关系等等。 在本文中,我们将创建一些示例规则,以了解如…

php中des加密cbc模式,php中加密解密DES类的简单使用方法示例

本文实例讲述了php中加密解密DES类的简单使用方法。分享给大家供大家参考,具体如下:在平时的开发工作中,我们经常会对关键字符进行加密,可能为了安全 也可能为了规范,所以要正确使用DES加密解密代码1:class DES{var $k…

hibernate自定义_如何自定义Hibernate脏检查机制

hibernate自定义介绍 在上一篇文章中,我描述了Hibernate自动脏检查机制。 尽管您应该始终喜欢它,但是有时您可能想添加自己的自定义污垢检测策略。 自定义脏检查策略 Hibernate提供以下定制机制: Hibernate拦截器#findDirty(&am…

php 读取文件fread,PHP: 读取文件 fgets 和 fread 的差异

程序在写时, 何时要用 fgets? 何时要用 fread? 主要的差异在哪边? 以下就用简单的范例来说明~先创建一个文件: /tmp/readfile.txt, 内容如下:abcdefg123456789写两只简单的小程序:fgets 版$handle fopen(/tmp/readfile.txt, "r");$contents ;if ($handle) {whil…

java 并发线程_Java并发教程–线程之间的可见性

java 并发线程当在不同线程之间共享对象的状态时,除了原子性外,其他问题也会发挥作用。 其中之一是可见性。 关键事实是,如果没有同步,则不能保证指令按照它们在源代码中出现的顺序执行。 这不会影响单线程程序中的结果&#xff…