Day10-JDK查看虚拟机配置讯息工具:jinfo

jinfo介绍

jinfo全名:Configuration Info for Java,生成虚拟机配置讯息,也可以修改虚拟机的参数。

指令介绍

jinfo <option> <pid>

一样可透过jinfojinfo -help查看此指令的说明资讯
https://ithelp.ithome.com.tw/upload/images/20210925/20140481BAU9mtuMgt.png
https://ithelp.ithome.com.tw/upload/images/20210925/20140481TWSoiSmX7T.png


以下为示范内容

Step.1 准备一个JinfoTest.java档案,程序码如下:

package Controller;

import java.util.Scanner;

public class JinfoTest{
  public static void main(String[] args) {
    System.out.println(System.getProperties()); //获取系统引数
    Scanner scannerTest = new Scanner(System.in);
    scannerTest.next(); //等待输入讯息
  }
}
  • 其实用前面几篇文章的范例也可以,只是这篇的范例我让程序运行时输出系统参数,好让後面我们下指令时,可以对照着看
  • 前面我原本都使用让执行绪暂停的方式,让我们可以下指令查看虚拟机的内容,但这篇范例改了个方式:取得使用者输入

Step.2 将程序码进行编译并且执行

编译与执行的指令说明,请参考Day4-java语言编译器:javac & 运行工具:java (上)
https://ithelp.ithome.com.tw/upload/images/20210925/20140481BBOyUg3tup.png
可以看一下在程序码中输出System.getProperties()获得的资讯内容如上图

Step3.要进行查看jinfo前,须先知道要查看哪个HotSpot进程

故得先透过jps查看,请参考Day7-JDK查看正在运行的Java进程工具:jps
https://ithelp.ithome.com.tw/upload/images/20210925/20140481y73U8p9KdD.png
我查到我这次的进程是4413,以下示范的指令记得将4413改为欲查看的进程id喔!

Step4.带入不同的options参数

以下依据查看修改两大类型进行介绍:

  1. 查看

  • 不带参数

输出虚拟机的选项的和系统选项

jinfo 4413

https://ithelp.ithome.com.tw/upload/images/20210925/201404812rg3WpgvQQ.png
https://ithelp.ithome.com.tw/upload/images/20210925/20140481sbAgymcJHa.png

  • -sysprops

输出系统选项 (可在程序中透过System.getProperties()取得)

jinfo -sysprops 4413

https://ithelp.ithome.com.tw/upload/images/20210925/20140481BshGnzbgxK.png

  • -flags

输出传递给JVM的选项值

jinfo -flags 4413

https://ithelp.ithome.com.tw/upload/images/20210925/201404811Y2hJEuW2f.png

  • -flag <具体参数name>

输出指定名称的参数

jinfo -flag UseG1Gc 4413

https://ithelp.ithome.com.tw/upload/images/20210925/2014048123QWcesNBb.png

  1. 修改

注意!!要能修改的参数带有manageable,可透过以下指令查看哪些参数可修改

java -XX:+PrintFlagsFinal -version|grep manageable 

https://ithelp.ithome.com.tw/upload/images/20210925/20140481SOrNKi04vY.png

  • -flag [+/-]<具体参数name>

增加或取消指定名称的参数

jinfo -flag +HeapDoumpBeforeFullGC 4413

/images/emoticon/emoticon33.gif
我挑选了HeapDoumpBeforeFullGC选项作为示范

✎Step1.先进行查看HeapDoumpBeforeFullGC选项状态>查出为-
✎Step2.进行修改为+
✎Step3.修改後查看HeapDoumpBeforeFullGC选项状态>查出为+
✎Step4.修改为-
✎Step5.修改後查看HeapDoumpBeforeFullGC选项状态>查出为+

https://ithelp.ithome.com.tw/upload/images/20210925/20140481Ik9bLpeL3j.png

  • -flag <name>=<value>

修改指定参数的参数值
https://ithelp.ithome.com.tw/upload/images/20210925/201404816BkkwOkImG.png


<<:  Day10 NiFi - Templates, Labels & Funnel

>>:  Day 10 : 操作基础篇 7 - 使用 Workspaces 功能,快速取用不同的版面配置

用python下载东西

其实不用安装requests就可以下载东西 python的urllib.request.urlope...

LeetCode 双刀流: 26. Remove Duplicates from Sorted Array

26. Remove Duplicates from Sorted Array 「重复」的判断是一...

安全内容自动化协议(SCAP)

安全内容自动化协议(SCAP)是一种使用特定标准来对组织中部署的系统进行自动化漏洞管理,度量和策略合...

防毒软件侦测篇

今天算是以病毒与防毒软件为主的方向。 这篇不在原本的安排之内, 不过昨天恶意程序分析之後, 发现有些...

不只懂 Vue 语法:试说明有哪些方式可以全域注册方法?

问题回答 全域注册的方法,意思是每个 Vue 元件都能使用的方法。在 Vue 2 会有以下方法: V...